mar*_*arp 8 bluetooth-lowenergy ibeacon-android altbeacon android-5.0-lollipop
昨天我在Nexus 4上获得了Android 5.0的更新,并且altbeacon库停止了检测信标.似乎在监视和测距时,didEnterRegion和didRangeBeaconsInRegion都没有被调用.
即使Radius Networks的Locate应用程序现在表现不同,一旦检测到信标的值,它们就不再得到更新,而且通常看起来好像信标超出了范围.
我注意到的一点是,现在在logcat中出现以下行"BluetoothLeScanner:找不到回调包装器".我继续寻找那个类,看到它是用Android L引入的,但我不知道这是否与它有关.
重要的是,在更新之前,我一直在使用Locate应用程序和参考应用程序,没有任何麻烦.
我不知道这是否是一个普遍的问题,但如果它发生在我身上,我相信它可能发生在其他人身上,所以任何帮助都会真的很受欢迎.
提前致谢!
更新:
在让图书馆工作失败后,我决定尝试图书馆的Android L分支.我做的是我将新库插入参考应用程序,但也没有按预期工作.
通过在设备进入新区域时通知,Monitor Activity似乎正常工作.但是,测距活动不报告任何信标,虽然已经调用了ofRangeBeaconsInRegion,但总是报告零信标.奇怪的是,当活动暂停时(暂时切换到另一个应用程序),logcat显示现在使用实际信标调用了didRangeBeaconsInRegion.
我现在有点卡住,因为我不知道如何让任何图书馆在Android L上工作,所以再次,任何帮助都会非常感激.
我正在使用基于 5.0+ 的最新 Altbeacon 版本,没有任何问题。事实上,我从未在 kitkat 上使用过它,所以我不确定我能提供帮助,但这是我监听 iBeacons 的工作代码。
实施信标消费者:
public class MainActivity implements BeaconConsumer
Run Code Online (Sandbox Code Playgroud)
初始化信标管理器
beaconManager = BeaconManager.getInstanceForApplication(this);
if (beaconManager != null && !beaconManager.isBound(this)) {
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);
}
Run Code Online (Sandbox Code Playgroud)
onConnect 并启动监听器
@Override
public void onBeaconServiceConnect() {
beaconManager.setRangeNotifier(new RangeNotifier() {
@Override
public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) {
if (beacons.size() > 0) {
Beacon firstBeacon = beacons.iterator().next();
}
}
});
beaconManager.startRangingBeaconsInRegion(new Region("com.example.app", null, null, null));
}
Run Code Online (Sandbox Code Playgroud)
此代码适用于 3 台设备
| 归档时间: |
|
| 查看次数: |
4011 次 |
| 最近记录: |