wx.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,用户来选择允许
或者拒绝