
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地址的方法有哪些等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)