[Android P] 蓝牙mac地址的读取与修改

[Android P] 蓝牙mac地址的读取与修改,第1张

蓝牙设备地址(BD_ADDR)是一个48bit的唯一标识符,由LAP(24位地址低端部分)、UAP(8位地址高端部分)和NAP(16位无意义地址部分)组成,其格式如下所示:

NAP和UAP是蓝牙设备生产厂商的唯一标识码,由SIG分配给各个厂商;LAP则由厂商自行分配。

其中,bit40为组播地址标志位,其值为0:unicast(单播),其值为1:multicast(组播);bit41为地址类型标志位,其值为0:universal addr,其值为1:local addr。

在函数 BluetoothAddress::GetLocalAddress() 中展示了数种方式读取蓝牙BD_ADDR。

首先函数 fetch_vendor_addr(local_addr) 读取存储在vendor下bt_nvbin文件中的蓝牙地址:

其次是从system property中获取本地蓝牙地址路径:

若以上两种方法均不能获得BD_ADDR,则尝试从factory property中获取:

再者,若从factory property中也无法获取到BD_ADDR,可以从之前保存的BDA中查找:

以上方法均无法获取到固定地址时,则生成随机地址,其形式为 0x22:22:xx:xx:xx:xx ,然后将之保存在property之中,每次重新开关机后会生成新的随机地址:

1电脑连接到ToughSwitch端口1,并配置IP地址为1921681X/242通过firefox访问TS交换机默认管理IP地址192168120

2选择继续前往

3点击工具tools中的MAC Tab查看接口连接的MAC地址明细。

4默认可以看到所有接口的MAC连接及VLAN明细。

5在search里面输入要查找的网络设备MAC地址即可出现对应连接的接口和vlan信息(如果为空,说明该设备没有连接到这个交换机上)

送上我迟来的答案,不知你这条帮助是哪年留下的,我是通过手机看到你的求助,但是却看不到你是那年留下的问题,能看到下面有人在15年的答复,估计应该是5年之前的问题了,即便能帮助到你也是作用不大了。我这有一款APP可以看到你手机上曾经连接过的所有蓝牙设备的MAC地址,只要是你手机曾连接过的设备,就全部都能看到Mac地址,APP名为

Walkie-Talkie via Bluetooth

只可惜我看到你的求助太迟了,已相隔5年之久,若当时看到多好啊一定会帮得到你^_^

苹果在原生的CoreBluetooth中,将设备的Mac进行了封装(通过外设的Mac地址和手机的Mac地址进行了加密计算),最后对外提供了一个UUID,在一台手机上,一般情况,UUID就可以作为这个外设的唯一标识了,但是如果换了一台手机的话,可能就会发生变化,所以如果需求是需要在多台手机上的话,UUID可能就不太实用了。

蓝牙的Mac地址可以加到蓝牙的广播包里,但是这样的话对硬件来说负担很大而且芯片也不稳定,也可以将蓝牙的Mac地址写在蓝牙设备系统的sevrice 里 。我们的需求是在通过Mac地址连接蓝牙设备,所以必须在连接蓝牙之前获取蓝牙的Mac地址。

通过广播包获取Mac地址

在这个代理方法我们可以拿到一个advertisementData,这个字典类型的就是广播包,这里面会有一些设备的属性,比如设备的名字啊,服务等。但是只有kCBAdvDataManufacturerData这个key是可以放入信息的,硬件工程师可以将Mac地址写到这个字段里去。

以上就是关于[Android P] 蓝牙mac地址的读取与修改全部的内容,包括:[Android P] 蓝牙mac地址的读取与修改、switch蓝牙mac地址怎么查看、android如何获得已配对设备的蓝牙mac地址等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9831935.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存