IBeacon收到警告Implcit意图在MonitorNotifier的回调上是不安全的

时间:2014-04-18 10:48:09

标签: ibeacon-android android-ibeacon

当使用指定区域的信标时,我正在使用Android 4.4并在监控回调中收到警告消息。

我用于监控的代码是

@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() 

1 个答案:

答案 0 :(得分:0)

此警告显示的是Android iBeacon Library的过期版本,0.7或更早版本。最新版本是0.7.6,不会有此警告。简单的解决方案是简单地升级到可用库的最新版本here.

警告与iBeacon数据在图书馆的后台服务和您的应用之间传递的方式有关。早期版本的库使用了"隐含意图"传递这些信息,理论上如果同时使用该库的两个应用程序在电话上,则理论上会导致iBeacon数据到错误的应用程序。出于开发目的,它并不重要,但如果在生产应用程序中使用它,则应使用最新的库版本。