2017-10-12 9 views
0

에 가까운입니다 : 나는 여러 장치 여전히 개선 확인하고 난 2000ms하지만 여전히이 문제 내가내 비콘 didRangeBeaconsInRegion에 몇 초 후에 사라집니다하지만 난 내 비콘

에게 직면 내 비콘 주파수를 만든 비컨 탐지 문제는 몇 초 동안 안정하지만 그 후에는 사라지고 비컨을 감지합니다.이 제안과 코드 샘플을 받아 들였습니다.

코드

this.beaconManager = BeaconManager.getInstanceForApplication(this); 
    beaconManager.setForegroundScanPeriod(500); 
    beaconManager.setForegroundBetweenScanPeriod(500); 
    enableBackgroundMode(true); 
    beaconManager.setAndroidLScanningDisabled(true); 
    this.beaconManager.getBeaconParsers().add(new BeaconParser().setBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24")); 
    this.beaconManager.getBeaconParsers().add(new BeaconParser().setBeaconLayout(EDDYSTONE_UID_LAYOUT)); 
    this.beaconManager.getBeaconParsers().add(new BeaconParser().setBeaconLayout(EDDYSTONE_URL_LAYOUT)); 
    this.beaconManager.getBeaconParsers().add(new BeaconParser().setBeaconLayout(EDDYSTONE_TLM_LAYOUT)); 
    this.beaconManager.setDebug(true); 
    this.beaconManager.bind(this); 




    this.beaconManager.addRangeNotifier(new RangeNotifier() { 
     @Override 
     public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) { 
      Log.e(TAG, "beacons size=>" + beacons.size()); 

      if (beacons.size() > 0) { 
       //my code 
      } 
    } 
}); 

로그 캣 :

10-12 12:33:48.381 12357-12357/com.mypackageName.android D/Callback: attempting callback via global broadcast intent: ComponentInfo{com.mypackageName.android/org.altbeacon.beacon.BeaconIntentProcessor} 
10-12 12:33:49.376 12357-12357/com.mypackageName.android D/Callback: attempting callback via global broadcast intent: ComponentInfo{com.mypackageName.android/org.altbeacon.beacon.BeaconIntentProcessor} 
10-12 12:33:50.356 12357-12881/com.mypackageName.android D/RangeState: adding id1: 87f8acb5-9ad0-29a7-204c-f080e2b55c0d id2: 10 id3: 1 to existing range for: [email protected] 
10-12 12:33:50.376 12357-12357/com.mypackageName.android D/Callback: attempting callback via global broadcast intent: ComponentInfo{com.mypackageName.android/org.altbeacon.beacon.BeaconIntentProcessor} 
10-12 12:33:51.376 12357-12357/com.mypackageName.android D/Callback: attempting callback via global broadcast intent: ComponentInfo{com.mypackageName.android/org.altbeacon.beacon.BeaconIntentProcessor} 
10-12 12:33:52.381 12357-12357/com.mypackageName.android D/Callback: attempting callback via global broadcast intent: ComponentInfo{com.mypackageName.android/org.altbeacon.beacon.BeaconIntentProcessor} 
10-12 12:33:52.391 12357-12880/com.mypackageName.android D/RangeState: adding id1: 87f8acb5-9ad0-29a7-204c-f080e2b55c0d id2: 10 id3: 1 to existing range for: [email protected] 
10-12 12:33:53.381 12357-12357/com.mypackageName.android D/Callback: attempting callback via global broadcast intent: ComponentInfo{com.mypackageName.android/org.altbeacon.beacon.BeaconIntentProcessor} 
10-12 12:33:54.376 12357-12357/com.mypackageName.android D/Callback: attempting callback via global broadcast intent: ComponentInfo{com.mypackageName.android/org.altbeacon.beacon.BeaconIntentProcessor} 
10-12 12:33:54.396 12357-12880/com.mypackageName.android D/RangeState: adding id1: 87f8acb5-9ad0-29a7-204c-f080e2b55c0d id2: 10 id3: 1 to existing range for: [email protected] 
10-12 12:33:55.381 12357-12357/com.mypackageName.android D/Callback: attempting callback via global broadcast intent: ComponentInfo{com.mypackageName.android/org.altbeacon.beacon.BeaconIntentProcessor} 
10-12 12:33:56.376 12357-12357/com.mypackageName.android D/Callback: attempting callback via global broadcast intent: ComponentInfo{com.mypackageName.android/org.altbeacon.beacon.BeaconIntentProcessor} 
10-12 12:33:57.376 12357-12357/com.mypackageName.android D/Callback: attempting callback via global broadcast intent: ComponentInfo{com.mypackageName.android/org.altbeacon.beacon.BeaconIntentProcessor} 
10-12 12:33:58.376 12357-12357/com.mypackageName.android D/Callback: attempting callback via global broadcast intent: ComponentInfo{com.mypackageName.android/org.altbeacon.beacon.BeaconIntentProcessor} 
10-12 12:33:59.381 12357-12357/com.mypackageName.android D/Callback: attempting callback via global broadcast intent: ComponentInfo{com.mypackageName.android/org.altbeacon.beacon.BeaconIntentProcessor} 
10-12 12:34:00.376 12357-12357/com.mypackageName.android D/Callback: attempting callback via global broadcast intent: ComponentInfo{com.mypackageName.android/org.altbeacon.beacon.BeaconIntentProcessor} 
10-12 12:34:01.376 12357-12357/com.mypackageName.android D/Callback: attempting callback via global broadcast intent: ComponentInfo{com.mypackageName.android/org.altbeacon.beacon.BeaconIntentProcessor} 
10-12 12:34:02.376 12357-12357/com.mypackageName.android D/Callback: attempting callback via global broadcast intent: ComponentInfo{com.mypackageName.android/org.altbeacon.beacon.BeaconIntentProcessor} 

답변

1

라인을 제거해보십시오 : (기본 설정을 사용하여)이 선없이

beaconManager.setForegroundScanPeriod(500); 
beaconManager.setForegroundBetweenScanPeriod(500); 

를, 라이브러리 검색합니다 끊임없이 전경. 이러한 라인이 존재하면 한 번에 0.5 초만 스캔하므로 신호로 인한 전송을 놓치고 감지에서 드롭 아웃을 일으킬 수 있습니다.

+0

전경에서 시험해 볼 것입니다. 배경 주사는 어때? – prasanthMurugan

+1

백그라운드 검색의 경우 BackgroundPowerSaver 클래스를 사용하는 것이 좋습니다. 그것은 배경과 전경 모드 사이에서 앱을 자동으로 전환 할 것입니다. 기본적으로 백그라운드 스캔은 매 5 분마다 (Android 8 이상의 경우 15 분마다) 10 초 동안 실행되며, 비콘이 처음 발견 될 때까지 백그라운드에서 Android 5 이상에서 저전력 스캔이 지속적으로 실행됩니다. BackgroundPowerSaver를 사용하는 경우 이는 모두 기본 동작입니다. – davidgyoung

+0

고맙습니다. 제품을 사랑하고 지원 방법을 좋아하십시오 :-) – prasanthMurugan