我正在使用 Android 4.4 并在找到具有指定区域的信标时在 Monitoring 的回调中收到警告消息。
我用于监控的代码是
@Override
public void onIBeaconServiceConnect() {
iBeaconManager.setMonitorNotifier(new MonitorNotifier() {
@Override
public void didEnterRegion(Region region) {
Log.e("didEnterRegion","I just saw an iBeacon for the first time!");
}
@Override
public void didExitRegion(Region region) {
Log.e("didExitRegion","I no longer see an iBeacon");
}
@Override
public void didDetermineStateForRegion(int state, Region region) {
Log.e("didDetermineStateForRegion","I have just switched from seeing/not seeing iBeacons: "+state);
if(state == MonitorNotifier.INSIDE){
try {
//Start Ranging in the Region.
iBeaconManager.startRangingBeaconsInRegion(region);
} catch (RemoteException e) {
System.out.println(e);
}
}
else if(state == MonitorNotifier.OUTSIDE){
try {
//Stop Ranging in the Region.
iBeaconManager.stopRangingBeaconsInRegion(region);
} catch (RemoteException e) {
System.out.println(e);
}
}
}
});
try {
//Start Monitoring in the Region.
iBeaconManager.startMonitoringBeaconsInRegion(region);
} catch (RemoteException e) {
System.out.println(e);
}
我在 logcat 中找到的警告消息是
04-19 14:32:08.156: D/BluetoothAdapter(10564): startLeScan(): null
04-19 14:32:08.166: D/BluetoothAdapter(10564): onClientRegistered() - status=0 clientIf=5
04-19 14:32:08.176: D/IBeaconService(10564): Scan started
04-19 14:32:08.186: D/IBeaconManager(10564): Got a ranging callback
04-19 14:32:08.186: D/IBeaconManager(10564): Got a ranging callback with 0 iBeacons
04-19 14:32:08.186: D/IBeaconManager(10564): Calling ranging notifier on :com.example.ranging.BackgroundRanging$4@4226f1e8
04-19 14:32:08.787: D/BluetoothAdapter(10564): onScanResult() - Device=4A:92:06:A9:FA:87 RSSI=-52
04-19 14:32:08.787: D/IBeaconService(10564): got record
04-19 14:32:08.797: D/IBeacon(10564): calculating accuracy based on rssi of -52.0
04-19 14:32:08.797: D/IBeaconService(10564): iBeacon detected :128f4e13-01ef-4618-bffa-50fed67f24aa 1001 3003 accuracy: 0.47659904336004005 proximity: 1
04-19 14:32:08.797: D/Callback(10564): attempting callback via intent: com.example.service.DID_MONITORING
04-19 14:32:08.807: W/ContextImpl(10564): Implicit intents with startService are not safe: Intent { act=com.example.service.DID_MONITORING (has extras) } android.content.ContextWrapper.startService:494 com.radiusnetworks.ibeacon.service.Callback.call:85 com.radiusnetworks.ibeacon.service.IBeaconService.processIBeaconFromScan:438
04-19 14:32:08.817: D/IBeaconService(10564): looking for ranging region matches for this ibeacon
04-19 14:32:08.817: D/IBeaconService(10564): matches ranging region: proximityUuid: 128f4e13-01ef-4618-bffa-50fed67f24aa major: null minor:null
04-19 14:32:09.257: D/IBeaconService(10564): Done with scan cycle
04-19 14:32:09.257: D/IBeaconService(10564): Calling ranging callback with 1 iBeacons
04-19 14:32:09.257: D/Callback(10564): attempting callback via messenger
04-19 14:32:09.257: D/IBeaconService(10564): Restarting scan. Unique beacons seen last cycle: 1
04-19 14:32:09.257: D/BluetoothAdapter(10564): stopLeScan()