问题
升级到鸿蒙系统(2.0.0)以后(部门机型正常,部分不正常,比如:华为Mate 40 PRO),打开微信小程序搜索附近蓝牙搜索不到,用非鸿蒙系统是能搜索到蓝牙的,IOS 多款机型也能搜索得到。
处理过程
通过查看微信小程序提供的API跟踪日志,没有报错,也没有任何问题。
第一组测试:后续我们找到蓝牙模组厂家帮我们跟踪定位,最后发现,在使用鸿蒙系统的微信小程序打开搜索蓝牙(startBluetoothDevicesDiscovery)搜索我们的设备,并不会发起蓝牙调用(通过专业设备抓取数据包)。
第二组测试:非鸿蒙系统,荣耀60SE,打开微信小程序搜索蓝牙,能正常发起数据通信,搜索到蓝牙。
问题猜测
鸿蒙系统会对手机应用使用蓝牙硬件(是硬件而非软件)有权限限制,因为蓝牙模组厂家在无法搜索到设备蓝牙的手机上(华为Mate 40 PRO)安装了一个专业搜索附近蓝牙的APP后,微信小程序就能搜索到设备蓝牙了。猜测安装的这个APP默认在后台把系统对应用访问的蓝牙一些权限给授权了,所以能正常搜索到了。
这里说的权限,并非是在【设置】里面设置应用使用蓝牙的权限,我们手工能操作蓝牙的权限,都已经开放给了微信。
最后疑问
猜测的蓝牙权限问题,目前我们无法定位到是哪个权限导致微信小程序搜索不到蓝牙。
我们调试的微信小程序ID为:wx3af58e7b9fb39a45
HONOR 30S 型号CDY-AN95 版本号2.0.0.272 GPUTurbo harmonyOS 2.0.0 处理器HUAWEIKirin
也遇到不能搜索蓝牙,用NRF-connect也不能搜到
楼主 你说的专业APP是叫什么名字啊 我也遇到这个问题
【已解决】
搜索蓝牙设备,系统需要授权给APP(微信)几个权限:
1、允许使用蓝牙
2、开启位置
现在的问题就是第2点,使用者会关闭位置服务,或者安卓系统比较低的不会自动打开服务而导致。还有就是一定要在应用服务里面授权APP使用位置信息。