关于低功耗蓝牙问题的请教。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
czwen1993
V2EX    iDev

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

  •  1
     
  •   czwen1993 2015-12-28 00:24:05 +08:00 3788 次点击
    这是一个创建于 3583 天前的主题,其中的信息可能已经有所发展或是发生改变。
    前提:不上架 App Store

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

    http://stackoverflow.com/questions/34482237/can-ios-get-bluetooth-device-mac-address-without-device-information
    16 条回复    2016-01-25 09:52:27 +08:00
    mobileloft
        1
    mobileloft  
       2015-12-28 09:20:52 +08:00
    你可以抓包看下设备广播信息里面的内容是什么。
    czwen1993
        2
    czwen1993  
    OP
       2015-12-28 10:02:08 +08:00 via iPhone
    @mobileloft 设备的文档我是有的,我只想找一个唯一的标志, Android 使用 mac 地址(太 tm 简单了)
    airqj
        3
    airqj  
       2015-12-28 10:29:11 +08:00
    让设备广播
    然后抓包不就有了
    czwen1993
        4
    czwen1993  
    OP
       2015-12-28 11:48:01 +08:00
    @airqj 是 notify 的意思吗?
    wanganjun
        5
    wanganjun  
       2015-12-28 12:53:52 +08:00
    想要唯一标识可以用 CBPeripheral.identifier
    allenforrest
        6
    allenforrest  
       2015-12-28 13:02:36 +08:00
    不要想了, UUID 和 Mac 不是一个概念, CB 的 API 只能获取 UUID , Mac 是不可能拿到的(处于安全考虑)
    如果这个蓝牙设备可以修改的话,让它在广播的设备名里加上 Mac
    czwen1993
        7
    czwen1993  
    OP
       2015-12-28 13:44:02 +08:00
    @allenforrest 我的 app 不上架 App Store ,有私有的方法吗?
    airqj
        8
    airqj  
       2015-12-28 13:48:54 +08:00
    设备在广播的时候是带有 mac 地址的
    找个蓝牙设备器一试便知
    czwen1993
        9
    czwen1993  
    OP
       2015-12-28 13:51:43 +08:00
    @airqj 我不是很搞得懂你们说的广播。你是说 Device Information 这个 service 吗?
    allenforrest
        10
    allenforrest  
       2015-12-28 14:10:27 +08:00
    @czwen1993 没有私有方法,只能获取到给这个蓝牙设备分配的 UUID ( CBPeripheral.identifier ),基本上可以认为是唯一的(除非换 iOS 设备或者 DFU 刷机之类的 maybe ),如果你只是需要一个唯一标识,那取 UUID 就够了。如果一定要取 MAC ,除了改设备之外,没什么好的办法。
    shanksxiao
        11
    shanksxiao  
       2015-12-28 14:19:10 +08:00
    两种办法:
    1 、因为 iOS CoreBluetooth 现在不支持直接获取 mac 地址,但会在广播包里给你传 uuid ,你可以在服务端建立一个完整的 uuid 对应 mac 地址的表,得到 uuid 后通过 HTTP 查询。
    2 、硬件修改广播信息的内容,其中设备名一项可以直接修改为当前蓝牙 Mac 地址的 HEXString 。
    czwen1993
        12
    czwen1993  
    OP
       2015-12-28 15:21:48 +08:00
    @shanksxiao 你说的广播 是指 Device Information 这个 service 吗?
    sloppysop
        13
    sloppysop  
       2015-12-28 15:26:09 +08:00
    有没有可能直接通过蓝牙设备的 USB 充电数据线直接读取设备信息呢?
    daniellu
        14
    daniellu  
       2015-12-29 13:29:08 +08:00
    @shanksxiao UUID 也未必靠谱的啊,有些板子的 UUID ,可能都是一样的……
    shanksxiao
        15
    shanksxiao  
       2015-12-30 09:55:10 +08:00
    @daniellu 表达有点问题,我是说那个 identifier
    LSBs
        16
    LSBs  
       2016-01-25 09:52:27 +08:00
    ios corebluetooth 是拿不到 Mac 地址的只能拿到一个 identifier. identifier 也不可靠会变化. 可以让设备发一个 发一个 notification 你订阅这个设备,让硬件把他的 Mac 地址传给你,硬件是知道自己的 Mac 地址的.
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2624 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 09:24 PVG 17:24 LAX 02:24 JFK 05:24
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86