收藏
回答

BLE 的deviceId是否就是 Mac 地址?

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


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


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


真心求帮忙解答,谢谢!

回答关注问题邀请回答
收藏

4 个回答

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

    @XMDAY

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

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


    2017-08-04
    有用
    回复 1
    • Moses
      Moses
      2019-12-16
      既然是这样:安卓返回的deviceid是Mac地址,但 iOS 返回的是设备的uuid,是iOS系统根据设备Mac生成的设备唯一标识;
      那就是对于同一个设备,注意是同一个设备,但在安卓和苹果上获取到deviceid是不一样的(同设备,但对程序来说获取的却是不同的标识),那有什么办法去唯一标识这个设备呢?相当于程序再经过什么样的处理后,不管从安卓还是苹果,获取到的某个值是一样,且这个值能唯一标识一个设备。
      不知我表达得是否清楚?
      谢谢
      2019-12-16
      回复
  • CNITER
    CNITER
    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
    有用
    回复
  • CNITER
    CNITER
    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
    有用
    回复
  • 王翊夫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
    有用
    回复
登录 后发表内容