Android 设备无法扫描信标

Android device can't scan beacon

我正在使用此处的 AltBeacon 库开发一个简单的信标接近度应用 https://altbeacon.github.io/android-beacon-library/samples.html

我正在试验上述网站上提供的示例代码,但是,每次我 运行 应用程序都只转到 addRangingNotifier() 方法。如果它检测到信标,它将记录信标大小。

private Region defaultRegion = null;
defaultRegion = new Region("BeaconIdentifier", Identifier.fromUuid(java.util.UUID.fromString(UUID)), null, null);
beaconManager = BeaconManager.getInstanceForApplication(this);
beaconManager.getBeaconParsers().add(new BeaconParser().setBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24"));
beaconManager.bind(this);

@Override
public void onBeaconServiceConnect() {
   beaconManager.addRangeNotifier(new RangeNotifier() {
      @Override
      public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) {
         if (beacons.size() > 0) {
            Log.d("MainInfo","Beacon List Size " + beacons.size());
         }else{
            Log.d("MainInfo","Beacon Empty");
         }
      }
   });
   try {
      beaconManager.startRangingBeaconsInRegion(defaultRegion);
   } catch (RemoteException e) {}
}

我可以接收到我周围的信标大小。
我测试了两个设备(A:Samsung galaxy J510-Marshmellow/B:Samsung galaxy J7-Nougat),B扫描beacon并打印Beacon List Size,但是,A无法扫描beacon并打印Beacon空.

所以我测试了相同的 Marshmellow 设备,但找不到它。

是否有任何代码应根据操作系统添加?

最有可能的错误是指定的 UUID 与您的信标不匹配。尝试替换此代码:

  Identifier.fromUuid(java.util.UUID.fromString(UUID))

  null

匹配所有信标。如果这解决了问题,请将 UUID 替换为您在检测到的信标之外的 UUID。