楼主这个问题解决了吗
关于蓝牙的问题 wx.onBluetoothAdapterStateChangewx.onBluetoothAdapterStateChange关键代码如下 [代码]Page({ onshow(){ wx.openBluetoothAdapter({ complete: (res) => { console.error('openBluetoothAdapter complete', res); wx.onBluetoothAdapterStateChange((res) => { console.error('onBluetoothAdapterStateChange callback', res); }); } } });[代码]Android手机:如果手机蓝牙是关闭的,然后用户再来回切换操作系统的蓝牙开关,始终不会打印[代码]onBluetoothAdapterStateChange callback[代码] Android手机:如果手机蓝牙是开启的,然后用户再来回切换操作系统的蓝牙开关,可以正常打印[代码]onBluetoothAdapterStateChange callback[代码] Android手机:如果手机蓝牙是开启的,然后退出小程序(点击微信左上角的“X”按钮),然后再进来,重复步骤循环几次,然后切换操作系统的蓝牙开关,发现会重复(就是注册总次数)打印:[代码]onBluetoothAdapterStateChange callback[代码] IPhone无以上问题 结论Android手机一定要[代码]wx.openBluetoothAdapter[代码]成功一次以后才能正常监听[代码]wx.onBluetoothAdapterStateChange[代码],而且存在[代码]onBluetoothAdapterStateChange[代码]重复注册问题 IPhone 操作正常 建议Android 跟 Iphone 手机保持一致,理论上 [代码]wx.onBluetoothAdapterStateChange[代码]是用来监听蓝牙状态的,与用户[代码]wx.openBluetoothAdapter[代码]是否成功无关 蓝牙功能可否跟[代码]获取地位信息[代码]和[代码]获取用户信息[代码]一样,开发者根据业务需要调用蓝牙API,用户来选择[代码]允许[代码]或者[代码]拒绝[代码]
2020-07-06