MiEcosystem/ios-rn-sdk

isBtGateWaySubDeviceWithMac判断蓝牙设备是否与蓝牙网关“连接”不是实时的

qinliduan opened this issue · 5 comments

Bug Report

实际现象

接口获取设备的连接状态不是实时的

期望表现

接口获取设备的连接状态是实时的

环境
app版本: [e.g. v4.11.1/app store]
相关模块和API: [e.g. MHPluginSDK.isBtGateWaySubDeviceWithMac]

复现步骤

一、设备在线切换到离线

  1. 打开app时首页设备副标题显示“设备在线”,进入插件,接口获取到的结果是设备在线
  2. 然后拔掉设备电池,等到首页设备副标题显示“待连接“,进入插件,接口获取到的结果是设备在线
  3. 反复退出插件,再进入插件,接口获取到的结果是设备在线(这个过程持续了大概10分钟,返回结果一直跟预期的不一样)
  4. 杀掉app,重新打开app,首页设备副标题显示“待连接”,进入插件,接口获取到的结果是设备离线

二、设备离线切换到在线

  1. 打开app时首页设备副标题显示“待连接”,进入插件,接口获取到的结果是设备离线
  2. 给设备上电,等到首页设备副标题显示“设备在线“,进入插件,接口获取到的结果是设备离线
  3. 反复退出插件,再进入插件,接口获取到的结果是设备离线(这个过程持续了大概10分钟,返回结果一直跟预期的不一样)
  4. 杀掉app,重新打开app,首页设备副标题显示“设备在线”,进入插件,接口获取到的结果是设备在线

说明:

  1. 以上步骤对比安卓对应接口,安卓是实时的
  2. 获取到的状态跟预期的不一致时,除了杀掉app重新打开,进入我的--蓝牙网关 页面后再返回来进
    入插件,获取到的状态跟预期的是一致的

其他的上下文/日志/截图

调用代码:

MHPluginSDK.isBtGateWaySubDeviceWithMac('EC:18:13:3F:39:8E', (res) => {
console.log('蓝牙网关是否连接:'+ res)
});

尝试过的解决办法

没看明白,描述中在线/离线指得是什么?

没看明白,描述中在线/离线指得是什么?

接口返回的结果false对应描述的离线,true对应描述的在线

没看明白,描述中在线/离线指得是什么?

接口返回的结果false对应描述的离线,true对应描述的在线

OK,我们尝试改为每次接口调用,都去服务器拉取最新的连接状态。改完会在此处通知你。

https://fir.im/forbeta 密码190717ss

试试这个包。

isBtGateWaySubDeviceWithMac 这个借口返回的状态不是实时的,有改吗? 什么版本的米家 支持?