- startBeaconDiscovery
- onBeaconUpdate
- 观察20s收到的ibeacon
- 关掉手机屏幕
- 观察10分钟收到的ibeacon
- 观察10s周期的startBeaconDiscovery和getBeacons
- 观察onBeaconServiceChange
- 发布:2020-11-19 23:46
- 更新:2023-03-28 15:08
- 阅读:954
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win10
HBuilderX类型: 正式
HBuilderX版本号: 2.9.10
手机系统: Android
手机系统版本号: Android 8.1
手机厂商: vivo
手机机型: y81s
页面类型: vue
打包方式: 离线
项目创建方式: HBuilderX
操作步骤:
预期结果:
步骤5中持续收到ibeacon,或者步骤6可以startBeaconDiscovery成功,或者步骤7能给出service change。
步骤5中持续收到ibeacon,或者步骤6可以startBeaconDiscovery成功,或者步骤7能给出service change。
实际结果:
步骤5只持续10s收到ibeacon
步骤6一直返回11003 already start
步骤7没有任何service change报告
步骤5只持续10s收到ibeacon
步骤6一直返回11003 already start
步骤7没有任何service change报告
bug描述:
uni.startBeaconDiscovery({
uuids: [device.uuid],
success(res) {
uni.onBeaconUpdate(data=>{
console.log('onBeaconUpdate')
})
uni.onBeaconServiceChange(options=>{
console.log('onBeaconServiceChange, options[available]='
+ options.available + ', options[discovering]=' + options.discovering)
})
}
})
打开app,使其运行上面这段代码,console.log('onBeaconUpdate')正常,锁屏后,这条log在10s内还能正常显示,可以得到beacon信息。
锁屏10s后,下面代码中console.log('onHide res=', JSON.stringify(res))会得到“11003 already start 已经开始搜索”,并且下面代码中console.log('onHide beacons=', JSON.stringify(beacons))的beacons信息为空。
下面代码也会10s周期性的执行,上面代码中console.log('onBeaconServiceChange‘)这条log一直没有输出。
onHide: function(option) {
let that = this
setInterval(()=>{
uni.startBeaconDiscovery({
uuids: [that.uuid],
complete(res) {
console.log('onHide res=', JSON.stringify(res))
}
})
uni.getBeacons({
complete(beacons) {
console.log('onHide beacons=', JSON.stringify(beacons))
}
})
}, 10000)
这个测试结果说明,
- app在锁屏后一直在后台运行,没有被kill;
- beacon discovery也在运行态,没有被kill;
- onBeaconServiceChange也没有检测到状态变化。
一切状态都表明软件工作正常,却没有ibeacon上来,so问题在哪里呢?是蓝牙硬件进入休眠了,SDK没有检测到?还是平台kill了SDK service,结果却没有反馈到app?
2***@qq.com
大佬有解决问题吗
2023-03-27 15:01