关于低功耗蓝牙问题的请教。

2015-12-28 00:24:05 +08:00
 czwen1993
前提:不上架 App Store

我想从一个低功耗蓝牙设备获取他的 mac 地址。
但是 这个设备并没有 做 Device Information ( 0x180A ) 这个模块。。。。坑死我了。。。。。
求一种办法能获取到它的 mac 地址。。
感激感激。能献上解决方案的 V 友,我愿意献上小小心意!
当然,最希望硬件方面的作出修改。

http://stackoverflow.com/questions/34482237/can-ios-get-bluetooth-device-mac-address-without-device-information
3395 次点击
所在节点    iDev
16 条回复
mobileloft
2015-12-28 09:20:52 +08:00
你可以抓包看下设备广播信息里面的内容是什么。
czwen1993
2015-12-28 10:02:08 +08:00
@mobileloft 设备的文档我是有的,我只想找一个唯一的标志, Android 使用 mac 地址(太 tm 简单了)
airqj
2015-12-28 10:29:11 +08:00
让设备广播
然后抓包不就有了
czwen1993
2015-12-28 11:48:01 +08:00
@airqj 是 notify 的意思吗?
wanganjun
2015-12-28 12:53:52 +08:00
想要唯一标识可以用 CBPeripheral.identifier
allenforrest
2015-12-28 13:02:36 +08:00
不要想了, UUID 和 Mac 不是一个概念, CB 的 API 只能获取 UUID , Mac 是不可能拿到的(处于安全考虑)
如果这个蓝牙设备可以修改的话,让它在广播的设备名里加上 Mac
czwen1993
2015-12-28 13:44:02 +08:00
@allenforrest 我的 app 不上架 App Store ,有私有的方法吗?
airqj
2015-12-28 13:48:54 +08:00
设备在广播的时候是带有 mac 地址的
找个蓝牙设备器一试便知
czwen1993
2015-12-28 13:51:43 +08:00
@airqj 我不是很搞得懂你们说的广播。你是说 Device Information 这个 service 吗?
allenforrest
2015-12-28 14:10:27 +08:00
@czwen1993 没有私有方法,只能获取到给这个蓝牙设备分配的 UUID ( CBPeripheral.identifier ),基本上可以认为是唯一的(除非换 iOS 设备或者 DFU 刷机之类的 maybe ),如果你只是需要一个唯一标识,那取 UUID 就够了。如果一定要取 MAC ,除了改设备之外,没什么好的办法。
shanksxiao
2015-12-28 14:19:10 +08:00
两种办法:
1 、因为 iOS CoreBluetooth 现在不支持直接获取 mac 地址,但会在广播包里给你传 uuid ,你可以在服务端建立一个完整的 uuid 对应 mac 地址的表,得到 uuid 后通过 HTTP 查询。
2 、硬件修改广播信息的内容,其中设备名一项可以直接修改为当前蓝牙 Mac 地址的 HEXString 。
czwen1993
2015-12-28 15:21:48 +08:00
@shanksxiao 你说的广播 是指 Device Information 这个 service 吗?
sloppysop
2015-12-28 15:26:09 +08:00
有没有可能直接通过蓝牙设备的 USB 充电数据线直接读取设备信息呢?
daniellu
2015-12-29 13:29:08 +08:00
@shanksxiao UUID 也未必靠谱的啊,有些板子的 UUID ,可能都是一样的……
shanksxiao
2015-12-30 09:55:10 +08:00
@daniellu 表达有点问题,我是说那个 identifier
LSBs
2016-01-25 09:52:27 +08:00
ios corebluetooth 是拿不到 Mac 地址的只能拿到一个 identifier. identifier 也不可靠会变化. 可以让设备发一个 发一个 notification 你订阅这个设备,让硬件把他的 Mac 地址传给你,硬件是知道自己的 Mac 地址的.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/246550

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX