关于蓝牙的问题 wx.onBluetoothAdapterStateChange
发布于 6 年前 作者 tianping 20296 次浏览 来自 问答

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


3 回复

android手机,如果没有打开蓝牙,进入小程序,接下来就收不到蓝牙状态改变的监听

android手机,如果打开蓝牙,进入小程序,就可以收到蓝牙状态改变的监听

ios不存在这个问题。。。

又木有反应了?

想问一下 将来getshareinfo 会支持 获得名称吗?   现在没有名称实在太不方便了,多了很多麻烦的事...

回到顶部