iOS 蓝牙连接获取MAC地址的方法

iOS 蓝牙连接获取MAC地址的方法,第1张

iOS自从7以后就无法从API直接获取设备的MAC地址,只能用UUID来标识设备,要注意的是同一个设备在不同手机上显示的UUID不相同

解决办法

1:把它加到蓝牙的广播包里,但是这样的话对硬件来说负担很大 而且芯片会不稳定

2:有的设备可以通过 “180A”这个服务来发现特征,再来读取 “2A23”这个特征值,可以获得Mac地址(如果你的蓝牙设备不支持这样获取,你可以跟硬件工程师沟通,来获得Mac地址,添加一个获取地址命令或者增加一个含地址的特征值都可以很容易的获取)

1:蓝牙连接的流程

a建立中心设备管理者

b扫描外设

c连接外设

d扫描外设中的服务

e扫描外设中的特征

f订阅或读取特征值

g获取外设中的数据

设备连接断开

写入数据成功的回调

原文连接: >

解决方法

1、首先打开电脑的命令行工具,在开始--运行--中输入cmd,按回车,d出命令行工具

2、需要先PING一下远程电脑的IP地址(示例:ping 192168119),如果远程电脑能PING通,则可以获取到MAC地址,如不能PING通,则获取不了MAC地址;不能PING通可能使远程电脑没有开机,或者远程电脑开启了防火墙拦截禁止PING;PING通的结果

3、获取远程MAC的方法是使用命令arp -a(示例:arp -a 192168119),在命令行输入 “arp -a 192168119”,按回车,获取到的物理地址就是所谓的MAC地址

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

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

通过广播包获取Mac地址

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

以上就是关于iOS 蓝牙连接获取MAC地址的方法全部的内容,包括:iOS 蓝牙连接获取MAC地址的方法、如何获取上网设备的MAC地址、获取对方MAC地址的方法有哪些等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/web/9352014.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存