MiEcosystem/ios-rn-sdk

V4.14.102版本不能搜索到BLE服务

dgutkai opened this issue · 8 comments

Bug Report

实际现象

IOS米家升级到V4.14.102之后,在第二次进入插件的时候不能搜索到服务。
首次绑定之后可以正常搜索到两个服务,但退出后第二次进入就只能找到一个服务了。

期望表现

第二次进入的时候,能够正常找到两个服务。

环境

  • app版本:V4.14.102
  • 相关模块和API:MHBluetooth.serviceUUIDsWithCallback

复现步骤

  1. 绑定蓝牙耳机。
  2. 绑定完成后进入插件,此时能够正常连接BLE,能够获取两个服务UUID。
  3. 退出插件。
    4.再次进入插件,此时能够连接BLE,但只能获取一个服务UUID。

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

mmexport1554975814065

请先升级到最新版米家app(v4.15.101)试试

多次进入、退出插件后,大概率会出现退出插件后蓝牙连接依然保持,这会导致你再次进入插件后由于设备已经被连接,出现找不到设备的情况。建议:

假如一定要把 插件退出操作 和 蓝牙断开操作 绑定在一起,请保证收到确实已经蓝牙断开的通知后再退出。

请先升级到最新版米家app(v4.15.101)试试

米家版本V4.15.101依旧发生这个问题。

多次进入、退出插件后,大概率会出现退出插件后蓝牙连接依然保持,这会导致你再次进入插件后由于设备已经被连接,出现找不到设备的情况。建议:

假如一定要把 插件退出操作 和 蓝牙断开操作 绑定在一起,请保证收到确实已经蓝牙断开的通知后再退出。

我杀掉米家APP,关闭蓝牙再打开蓝牙这些操作都有测试过,还是不行。就只有首次绑定之后可以。

请问这个问题有分析出什么问题吗? @Woody2016

多次进入、退出插件后,大概率会出现退出插件后蓝牙连接依然保持,这会导致你再次进入插件后由于设备已经被连接,出现找不到设备的情况。建议:

假如一定要把 插件退出操作 和 蓝牙断开操作 绑定在一起,请保证收到确实已经蓝牙断开的通知后再退出。

----- 这个建议你有试过吗?

多次进入、退出插件后,大概率会出现退出插件后蓝牙连接依然保持,这会导致你再次进入插件后由于设备已经被连接,出现找不到设备的情况。建议:

假如一定要把 插件退出操作 和 蓝牙断开操作 绑定在一起,请保证收到确实已经蓝牙断开的通知后再退出。

----- 这个建议你有试过吗?

这个我已经测试了,依旧不行。另外杀掉APP进程,重启蓝牙这两个操作同样不行。

service 和 characteristic 都是要连接设备后,去发现的,这是蓝牙开发的通用规则,请使用对应模块中的方法。你现在上来就能直接获取一两个服务应该是在认证设备时连带发现了,不要依赖。连接后应该自己去发现自己需要的服务。