我正在使用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) {}
}我能收到我周围的信标大小。
I测试两种设备(A:三星星系J 510-Marshmellow/B:三星星系J7-努格特),B扫描信标和打印信标列表大小,但A不能扫描信标和打印空。
所以我测试了同样的Marshmellow装置,但我找不到它。
是否有根据操作系统需要添加的代码?
发布于 2018-11-20 03:39:19
最可能的错误是指定的UUID与您的信标不匹配。尝试替换以下代码:
Identifier.fromUuid(java.util.UUID.fromString(UUID))使用
null来匹配所有的信标。如果修复了它,请将UUID替换为检测到的信标之外的UUID。
https://stackoverflow.com/questions/53385394
复制相似问题