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,用户来选择允许
或者拒绝
onShow,每次页面切换都会显示时都会执行
上面代码,在 onshow 里执行了初始化适配器,在回调里注册了监听适配器开关,多次 onshow,会多次初始化,会多次注册监听。
放在 onLoad 里试试
楼主这个问题解决了吗
又木有反应了?
android手机,如果没有打开蓝牙,进入小程序,接下来就收不到蓝牙状态改变的监听
android手机,如果打开蓝牙,进入小程序,就可以收到蓝牙状态改变的监听
ios不存在这个问题。。。
想问一下 将来getshareinfo 会支持 获得群名称吗? 现在没有名称实在太不方便了,多了很多麻烦的事...