Android设备无法扫描信标

时间:2018-11-20 02:34:19

标签: android beacon

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

我正在尝试上述网站上提供的示例代码,但是,每次我运行该应用程序时,它只会使用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:三星银河J510-Marshmellow / B:三星银河J7-牛轧糖),B扫描信标并打印信标列表大小,但是,A无法扫描信标并打印信标为空< / strong>。

所以我测试了相同的Marshmellow装置,但找不到。

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

1 个答案:

答案 0 :(得分:1)

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

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

使用

  null

匹配所有信标。如果可以解决问题,请将UUID替换为不在检测到的信标中的UUID。