我开发了一个Android应用程序,以便从iBeacon获取数据,因为我可以获取原始数据,我做这件事没有问题,但在IOS中这是不可能的,而且似乎不可能在广告中接收到没有苹果公司标识符0x004c的数据包。是否可以从使用其他公司标识符进行广告的设备接收广告?如果可以,是否可以接收公司标识符代码?我在苹果提供的文档中找不到任何东西,也没有在几个论坛中搜索。
任何想法都非常受欢迎。
嗅探器捕获以下内容:
北欧半导体公司标识符:
+----------------------------------------------------+----------------- - - -
| Packet sniffer frame header |
+----+-------------+-------------------------+-------+
|info| Packet nbr. | Time stamp | Length| Packet data
+----+-------------+-------------------------+-------+----------------- - - -
| 01 | 0C 00 00 00 | 49 12 27 44 00 00 00 00 | 30 00 | 2F D6 BE 89 8E 40 24 4E A0 C3 8B 04 FF 02 01 04 1A FF 59 00 02 15 01 12 23 34 45 56 67 78 89 9A AB BC CD DE EF F0 00 01 00 01 BB BA 88 BA 37 A5
+----+-------------+-------------------------+-------+----------------- - - -
苹果公司标识符:
+----------------------------------------------------+----------------- - - -
| Packet sniffer frame header |
+----+-------------+-------------------------+-------+
|info| Packet nbr. | Time stamp | Length| Packet data
+----+-------------+-------------------------+-------+----------------- - - -
| 01 | 01 00 00 00 | ED 07 68 00 00 00 00 00 | 30 00 | 2F D6 BE 89 8E 40 24 E4 98 E6 3C 1B 5D 02 01 1A 1A FF 4C 00 02 15 01 12 23 34 45 56 67 78 89 9A AB BC CD DE EF F0 00 00 00 00 C5 E8 19 24 3A A5
+----+-------------+-------------------------+-------+----------------- - - -
问候
Iván
否,在iOS中无法使用CoreBluetooth
读取信标广告的原始字节,也无法访问公司代码或其他字段。您只能获得CoreLocation
提供的字段,基本上是由三部分组成的信标标识符。请参见此处:http://developer.radiusnetworks.com/2013/10/21/corebluetooth-doesnt-let-you-see-ibeacons.html
实验表明,CoreLocation
API只能检测到公司代码为0x00ff或更低的信标广告——最高有效字节必须为零。
相反,CoreLocation尝试使用CoreBluetooth框架。
你应该在这里有所有的BLE信息:
- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI.