iOS搜索到蓝牙时,蓝牙的mac地址已经被隐藏了,我们打印出来的外设信息中是没有mac地址的,苹果提供给我们识别蓝牙的是identifier
但是安卓的是有mac地址的,客户就要求我们iOS也必须显示mac地址,可是我们的应用层无法实现该功能。通过查阅网上的资料发现有的说可以在服务里添加MAC地址,可是这样的话还是无法实现搜索的时候显示MAC地址,与客户的需求不符合。
然后我们的同事找到一个同牌子开发版的手环可以实现显示MAC地址,然后我拿来他们的手环进行测试,发现他们的MAC地址是放在了广播包里面。
然后将这个告知了需求方,让硬件配合开发此功能,现在我们的硬件也实现了该功能:
这样的话,我们可以通过获得广播包里的MAC地址来展示给用户。
所以如果有这个需求的要跟硬件的沟通,让他们把MAC地址加入到广播包中,我们iOS才可以实现这个功能。
蓝牙是有MAC地址的,共有2种方法可以查看机器蓝牙适配器的MAC地址,需要确保蓝牙为开启状态。
第一种方法:
使用CMD命令指示符或者Windows Powershell,由于两种方式操作逻辑相同,以CMD为例,
1打开CMD(非管理员模式运行即可,如提示权限不足则使用管理员模式运行),输入命令ipconfig /all后按enter键
2框中出现命令返回的内容后,鼠标滚轮下拉找到“以太网适配器 蓝牙网络连接”,下方的“物理地址”后划红的部分即为蓝牙的“物理地址(MAC)”。
第二种方法:
此方法较为简单,
打开Win10系统的“设置”-“网络和Internet”-“查看网络属性”后
鼠标滚轮下拉找到“蓝牙网络连接”就可看到蓝牙的“物理地址(MAC)”
安卓系统的平板电脑,在设置里面可以查看到蓝牙地址。手机查询蓝牙地址的话,在拨号键盘上键入:#2820# 查询 蓝牙 MAC 地址。现在也可来查一下啦~步骤如下:(1)在主屏幕上轻按“设置”按钮。或者,按下物理按钮“Menu”,选择“设置”。(2)在设置的列表下,轻按选择“关于本机”按钮。(3)然后,轻按“状态消息”按钮。(4)查看“蓝牙地址”注意:必须开启蓝牙,才能查看到蓝牙地址。编者按: 安卓系统平板电脑中蓝牙地址,对于普通用户,很少能用得着。蓝牙地址可以说是连接到设备的唯一通道,通过识别协议,可实现设备间的数据传输。一般,我们用不着,但如果有人问你查询“蓝牙地址”,你就可以告诉他。
公司的项目是医疗类的项目,所以这段一直在和蓝牙打交道。我使用的是苹果原生的框架CoreBluetooth。在对接几个蓝牙设备的过程中,也遇到一些坑,下文我会一一列举。 git上有个库 BabyBluetooth 基于原生CoreBluetooth框架进行了封装,使用起来也很方便,大家可以尝试一下。 那么我们开始吧!
需要注明,下面的UUID是我的蓝牙设备中的Service和Characteristic的UUID,要注意根据自己的蓝牙
设备提供的Service和Characteristic的UUID来替换
这里有几个问题值得注意:
1 在ios中蓝牙广播信息中通常会包含以下4种类型的信息。ios的蓝牙通信协议中不接受其他类型的广播信息。因此需要注意的是,如果需要在扫描设备时,通过蓝牙设备的Mac地址来唯一辨别设备,那么需要与蓝牙设备的硬件工程师沟通好:将所需要的Mac地址放到一下几种类型的广播信息中。通常放到kCBAdvDataManufacturerData这个字段中。
kCBAdvDataIsConnectable = 1;
kCBAdvDataLocalName = XXXXXX;
kCBAdvDataManufacturerData = <XXXXXXXX>;
kCBAdvDataTxPowerLevel = 0;
2 设备的UUID(peripheralidentifier)是由两个设备的mac通过算法得到的,所以不同的手机连接相同的设备,它的UUID都是不同的,无法标识设备。
3 苹果与蓝牙设备连接通信时,使用的并不是苹果蓝牙模块的Mac地址,使用的是苹果随机生成的十六进制码作为手机蓝牙的Mac与外围蓝牙设备进行交互。如果蓝牙设备与手机在一定时间内多次通信,那么使用的是首次连接时随机生成的十六进制码作为Mac地址,超过这个固定的时间段,手机会清空已随机生成的Mac地址,重新生成。也就是说外围设备是不能通过与苹果手机的交互时所获取的蓝牙Mac地址作为手机的唯一标识的。(这是在与写蓝牙设备的固件工程师联调时根据问题的现象推测的。至于苹果蓝牙通讯协议的底层是否确实完全像我所说的这样,希望了解的读者能提供帮助。在此先谢过。)
需要注意的是这里是对kCGMCharacteristicOneUUID这个特性进行写入,这里之所以这样操作是因为我的蓝牙设备的蓝牙协议是这样定义的,所以这里不要照抄照搬,要按照你的蓝牙设备的通讯协议来确定,对哪一个特性进行read,对哪个特性进行write,以及对哪个特性进行设置Notify
需要注意的是这里读取蓝牙信息 (但并不是在返回值中接收,要在
这个回调方法中接收)
手机信息网如何获取当前手机的蓝牙MAC地址信息
随着智能手机的普及,蓝牙技术也在逐渐广泛应用。在日常使用中,我们经常需要用到蓝牙连接,而蓝牙MAC地址是蓝牙连接的重要参数之一。那么,如何获取当前手机的蓝牙MAC地址信息呢?手机信息网为您提供以下步骤。
步骤一:打开手机设置
首先,在手机主屏幕上找到“设置”应用,点击进入。
步骤二:进入蓝牙设置页面
在设置界面中,找到“蓝牙”选项,点击进入。
步骤三:寻找蓝牙MAC地址
在蓝牙设置页面中,找到当前连接的蓝牙设备名称,点击进入。
步骤四:查看蓝牙MAC地址
在连接的蓝牙设备信息页面中,可以看到该设备的名称和MAC地址信息。MAC地址是一串由数字和字母组成的标识符,可以用来识别设备的唯一性。
总结:
通过以上步骤,我们可以很容易地获取当前手机的蓝牙MAC地址信息。需要注意的是,不同的手机品牌和系统版本可能会有所不同,但大体步骤是相似的。如果您仍然无法找到蓝牙MAC地址,请参考手机使用说明书或者向厂商客服咨询。了解这些基本的手机信息操作可以帮助我们更好地使用手机,更加方便地享受智能科技带来的便利。
欢迎分享,转载请注明来源:品搜搜测评网