Android的AltBeacon测距没有find任何东西

我正在使用这里提供的标准示例,除非我修改它来记录,如果没有发现确保它实际上被调用。

@Override public void onBeaconServiceConnect() { beaconManager.addRangeNotifier(new RangeNotifier() { @Override public void didRangeBeaconsInRegion(Collection beacons, Region region) { if (beacons.size() == 0) { Log.i("ActivityMain", "no beacons found"); } if (beacons.size() > 0) { Log.i("ActivityMain", "The first beacon I see is about " + beacons.iterator().next().getDistance() + " meters away."); } } }); try { beaconManager.startRangingBeaconsInRegion(new Region("myRangingUniqueId", null, null, null)); } catch (RemoteException e) { e.printStackTrace(); } } 

我已经尝试添加几个附加的解析器绑定之前,我已经尝试扫描而不添加它们:

 beaconManager.getBeaconParsers().add(new BeaconParser(BeaconParser.ALTBEACON_LAYOUT)); beaconManager.getBeaconParsers().add(new BeaconParser(BeaconParser.EDDYSTONE_TLM_LAYOUT)); beaconManager.getBeaconParsers().add(new BeaconParser(BeaconParser.EDDYSTONE_UID_LAYOUT)); beaconManager.getBeaconParsers().add(new BeaconParser(BeaconParser.EDDYSTONE_URL_LAYOUT)); beaconManager.getBeaconParsers().add(new BeaconParser(BeaconParser.URI_BEACON_LAYOUT)); beaconManager.getBeaconParsers().add(new BeaconParser(). setBeaconLayout("m:0-3=4c000215,i:4-19,i:20-21,i:22-23,p:24-24")); beaconManager.bind(this); 

我已经在清单中指定了以下权限:

      

现在我的房间里有多个信标,包括Eddystone和iBeacon。 调用startRangingBeaconsInRegion(...)后,找不到它们startRangingBeaconsInRegion(...)

D/BluetoothLeScanner: could not find callback wrapper logcat中的D/BluetoothLeScanner: could not find callback wrapper ,如果这是任何指标。 事情是这样的回调似乎被发现,因为我确信这段代码

 if (beacons.size() == 0) { Log.i("ActivityMain", "no beacons found"); } 

正在执行一次。 我试过这个应用程序信标扫描仪 ,它也使用AltBeacon,发现我的信标就好了。 我检查了它的源代码,它不喜欢有什么事情我不做,虽然另一个应用程序正在使用kotlin,我正在使用java。

我已经尝试在Moto G3和Galaxy S7上做这个,并且没有任何一个运气。

这可能是什么原因?