isBtGateWaySubDeviceWithMac判断蓝牙设备是否与蓝牙网关“连接”不是实时的
qinliduan opened this issue · 5 comments
qinliduan commented
Bug Report
实际现象
接口获取设备的连接状态不是实时的
期望表现
接口获取设备的连接状态是实时的
环境
app版本: [e.g. v4.11.1/app store]
相关模块和API: [e.g. MHPluginSDK.isBtGateWaySubDeviceWithMac]
复现步骤
一、设备在线切换到离线
- 打开app时首页设备副标题显示“设备在线”,进入插件,接口获取到的结果是设备在线
- 然后拔掉设备电池,等到首页设备副标题显示“待连接“,进入插件,接口获取到的结果是设备在线
- 反复退出插件,再进入插件,接口获取到的结果是设备在线(这个过程持续了大概10分钟,返回结果一直跟预期的不一样)
- 杀掉app,重新打开app,首页设备副标题显示“待连接”,进入插件,接口获取到的结果是设备离线
二、设备离线切换到在线
- 打开app时首页设备副标题显示“待连接”,进入插件,接口获取到的结果是设备离线
- 给设备上电,等到首页设备副标题显示“设备在线“,进入插件,接口获取到的结果是设备离线
- 反复退出插件,再进入插件,接口获取到的结果是设备离线(这个过程持续了大概10分钟,返回结果一直跟预期的不一样)
- 杀掉app,重新打开app,首页设备副标题显示“设备在线”,进入插件,接口获取到的结果是设备在线
说明:
- 以上步骤对比安卓对应接口,安卓是实时的
- 获取到的状态跟预期的不一致时,除了杀掉app重新打开,进入我的--蓝牙网关 页面后再返回来进
入插件,获取到的状态跟预期的是一致的
其他的上下文/日志/截图
调用代码:
MHPluginSDK.isBtGateWaySubDeviceWithMac('EC:18:13:3F:39:8E', (res) => {
console.log('蓝牙网关是否连接:'+ res)
});
尝试过的解决办法
Copypeng commented
没看明白,描述中在线/离线指得是什么?
qinliduan commented
没看明白,描述中在线/离线指得是什么?
接口返回的结果false对应描述的离线,true对应描述的在线
Copypeng commented
没看明白,描述中在线/离线指得是什么?
接口返回的结果false对应描述的离线,true对应描述的在线
OK,我们尝试改为每次接口调用,都去服务器拉取最新的连接状态。改完会在此处通知你。
Copypeng commented
https://fir.im/forbeta 密码190717ss
试试这个包。
Smart-XiaoLeiGe commented
isBtGateWaySubDeviceWithMac 这个借口返回的状态不是实时的,有改吗? 什么版本的米家 支持?