BLE 的deviceId是否就是 Mac 地址?
发布于 5 年前 作者 gangdeng 11383 次浏览 来自 问答

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

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

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

真心求帮忙解答,谢谢!

4 回复

@XMDAY

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

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

示例 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)

嗨,你好啊!

我所使用的开发环境是: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)上测试打印出来的信息:



最后,谢谢!

Hi,这里应该有几个问题

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

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

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

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

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

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

回到顶部