收藏
回答

BLE 的deviceId是否就是 Mac 地址?

问题模块
API和组件

 如题,小程序扫描 BLE 出来的deviceId是否就是 Mac 地址?(还有 uuids 也是)。


这个deviceId跟其他 APP 扫描出来的 mac 地址是不一样的。


所以这里有个问题就是,比如我要连接 ibeacon 设备,用小程序自己扫描出来的uuid就一直连接不上。 用其他 APP 扫描出来的 uuid 去连接,则可以。


真心求帮忙解答,谢谢!

最后一次编辑于  2017-08-03  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

4 个回答

  • 王翊夫if
    王翊夫if
    2017-08-04

    @XMDAY

    前面的问题,安卓返回的deviceid是Mac地址,但iOS返回的是设备的uuid,是iOS系统根据设备Mac生成的设备唯一标识;

    关于beacon的问题,Mac开发者工具不支持beacon接口,因此调用接口会返回 failed:not support,请用真机调试


    2017-08-04
    赞同
    回复
  • 王翊夫if
    王翊夫if
    2017-08-04

    Hi,这里应该有几个问题

    1、扫描出来deviceId是否就是Mac地址?

    安卓平台扫描出来的deviceId是Mac地址,而iOS平台由于系统限制,会扫描出来一个由苹果基于Mac地址生成的UUID。

    2、这个deviceId跟其他App扫描出来mac地址是不一样的?

    这个问题是发生在安卓平台或者iOS平台呢?蓝牙接口应该都是透传系统接口返回的设备数据,预期是一致的。

    3、要链接iBeacon设备,小程序扫描出来uuid链接不上,其他App扫描出来的uuid去链接,则可以?

    是什么系统平台下的表现呢? 链接不上的错误码是什么呢?

    2017-08-04
    赞同
    回复
  • meetstart
    meetstart
    2017-08-04

    示例 code:


    setInterval(function(){
                    wx.startBeaconDiscovery({
                        uuids: ["00000a8f-0000-1000-8000-00805f9b34fb", "00003f20-0000-1000-8000-00805f9b34fb", "0000ac23-0000-1000-8000-00805f9b34fb"],
                        success: function(res) {
                            console.log('发现成功',res);
                        },
                        fail: function(res) {
                            console.log('发现失败',res);
                        }
                    })
                    wx.getBeacons({
                        success: function(res) {
                            console.log('获取成功',res);
                        },
                        fail: function(res) {
                            console.log('获取失败',res);
                        }
                    })
            },5000)


    2017-08-04
    赞同
    回复
  • meetstart
    meetstart
    2017-08-04

    嗨,你好啊!


    我所使用的开发环境是:macOS Sierra 版本10.12.6,微信开发者工具版本是:版本 0.20.191900 (0.20.191900)。


    1、关于问题一,我指的是我在RMPB笔记本上用微信开发者工具扫描出的deviceId和 uuids 跟我用安卓手机 APP 上扫描出来的Mac 地址不一样。

    2、问题二跟问题一似乎是一样的,我有去测试了一下,通过 iOS 平台手机和安卓平台手机扫描同一个设备得出的 mac 地址确实是不一样的。

    3、我要搜索 ibeacon 的信息,现在的方式不是通过扫描得到 uuids,然后把 uuids 的值赋值到wx.startBeaconDiscovery里去搜索么?如果是直接填入安卓APP 上获得的 uuids 则有些情况下可以获取 ibeacon 信息,大部分情况下则都是返回错误


    以下是在开发者工具上,wx.startBeaconDiscovery和wx.getBeacons  API接口打印出来的信息:



    以下是安卓手机(手机为荣耀9,6G+64G)上测试打印出来的信息:



    最后,谢谢!

    2017-08-04
    赞同
    回复