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。
我正在使用此处的 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。