前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微信小程序使用蓝牙wx.startBluetoothDevicesDiscovery报错 1509008 的解决办法

微信小程序使用蓝牙wx.startBluetoothDevicesDiscovery报错 1509008 的解决办法

原创
作者头像
踏雲風
发布2022-04-06 11:10:25
3.6K0
发布2022-04-06 11:10:25
举报
文章被收录于专栏:随笔杂谈随笔杂谈

前言:一直以来用微信小程序使用蓝牙。都没出现问题,但是最近部分反馈说有人可以,但是升级微信后,用不了。一番调试后,发现提示了一个错误,但是文档又没有说明怎么解决...

一、错误详情:

代码语言:javascript
复制
{errno: 1509008, errCode: -1, errMsg: "startBluetoothDevicesDiscovery:fail:location permission is denied", isDiscovering: false}

从官方文档查询:https://developers.weixin.qq.com/miniprogram/dev/api/device/bluetooth/wx.startBluetoothDevicesDiscovery.html

并没有这个这个错误代码。但是文档下方又有一句话提示:

代码语言:javascript
复制
考虑到蓝牙功能可以间接进行定位,安卓 6.0 及以上版本,无定位权限或定位开关未打开时,无法进行设备搜索。这种情况下,安卓 8.0.16 前,接口调用成功但无法扫描设备;8.0.16 及以上版本,会返回错误。

纵使手机打开蓝牙,定位,并授权微信有定位权限。但是仍然部分安卓手机还报错。

所以推断,必须微信小程序主动弹出定位授权让用户点击同意。

二、解决办法

2.1 给微信小程序 app.json 增加 permission 节点配置

代码语言:javascript
复制
"permission": {
    "scope.userLocation": {
      "desc": "授权定位有助于提高蓝牙水表的连接成功率"
    }
  },

2.2 调用一次手机定位

简单粗暴的办法就是首页调用一次定位,不要重复调用,以免影响性能。如:

代码语言:javascript
复制
    wx.getLocation({
      type: 'gcj02',
      success (res) {
        console.log(res)
      }
     })

当打开小程序,就会提示:

点击同意后即可。如果不同意,用户也可以通过小程序设置来开启定位权限。

2.3 提交审核的时候,需要更新用户隐私协议,完善一下

更新协议:

最后提交体验版审核,待通过后,发布新版就可以解决问题了

三、总结

微信小程序不定期会修改一些接口权限,要留意官方通知,还有就是要具体调试错误代码和错误日志。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、错误详情:
  • 二、解决办法
    • 2.1 给微信小程序 app.json 增加 permission 节点配置
      • 2.2 调用一次手机定位
        • 2.3 提交审核的时候,需要更新用户隐私协议,完善一下
        • 三、总结
        相关产品与服务
        云开发 CloudBase
        云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档