收藏
回答

BLE蓝牙设备需要使用位置服务,否则搜索不到,如何判断系统的位置服务打开?

平台 Android 6以上的 蓝牙使用,需要系统的定位信息, 否则搜索不到BLE的设备。

位置服务已经授权。

但是如果系统的定位服务没打开,这时候搜索不到。

查了好久不知道怎么判断 系统的定位服务是否已经打开?


求指点!


最后一次编辑于  07-30
回答关注问题邀请回答
收藏

3 个回答

  • 社区技术运营专员-娇华
    社区技术运营专员-娇华
    07-31

    你好,可以看下这个https://developers.weixin.qq.com/miniprogram/dev/api/base/system/system-info/wx.getSystemInfo.html

    07-31
    赞同
    回复 1
    • Aleda
      Aleda
      07-31
      非常感谢, 解决了问题。。。
      07-31
      回复
  • \
    \
    07-31

    是否获取授权定位用‘canIuse’试试看https://developers.weixin.qq.com/miniprogram/dev/api/base/wx.canIUse.html

    07-31
    赞同
    回复 1
    • Aleda
      Aleda
      07-31
      根据 @娇华 的回答, 使用 wx.getSystemInfo 就可以了。 感谢你的回复
      07-31
      回复
  • Aleda
    Aleda
    07-30

    我原本的打算是 获取下位置信息,如果获取失败,又授权的话,认为是没打开。

    但是实际调试的时候发现,即便 位置服务没打开,也能定位,  返回的都是success。。所以这种方式就失败了。


    wx.getLocation({
       type: 'wgs84',
       success: function(res) {
         console.log(TAG, "获取位置成功", res)
       },
       fail: function(res) {
         console.log(TAG, "获取位置失败", res)
         wx.getSetting({ //2019年7月30日 bai: 如果获取位置失败,并且已经授权的话,可能是系统定位没打开
           success: function(res) {
             if (res.authSetting['scope.userLocation']) {
               wx.showModal({
                 content: '请打开系统定位服务',
                 showCancel: false,
                 success: function(res) {},
               })
             }
           },
           fail: function(res) {},
           complete: function(res) {
     
           },
         })
     
       },
       complete: function(res) {},
     })





    07-30
    赞同
    回复