MiEcosystem / ios-rn-sdk

Works with mijia
https://iot.mi.com
116 stars 40 forks source link

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

Closed qinliduan closed 5 years ago

qinliduan commented 5 years ago

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) });

尝试过的解决办法