2014-11-03 605 views
2

我開發了一個Android應用程序以從iBeacon獲取數據,因爲我可以獲得原始數據,但我在使用IOS時沒有問題,但是在IOS這是不可能的,並且似乎不可能接收沒有Apple公司標識符0x004c的數據包到廣告中。是否可以從使用其他公司標識符進行廣告的設備接收廣告? 如果它是可行的,可以接收公司標識符代碼? 我無法在Apple提供的文檔中找到任何內容或在多個論壇中搜索。是否有可能在沒有使用0x004c Apple公司標識符的情況下在IOS中獲得Beacon廣告

任何想法都會非常受歡迎。

嗅探器捕獲以下:

北歐半導體的公司標識:

+----------------------------------------------------+----------------- - - - 
|  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 
+----+-------------+-------------------------+-------+----------------- - - - 

問候

伊萬

回答

1

不,不可能在iOS中使用CoreBluetooth讀取信標廣告的原始字節,或以其他方式訪問公司代碼或其他字段。您只能得到由CoreLocation提供的字段,基本上是三部分信標標識符。請參閱:http://developer.radiusnetworks.com/2013/10/21/corebluetooth-doesnt-let-you-see-ibeacons.html

實驗表明,CoreLocation API只會檢測公司代碼爲0x00ff或更低的信標廣告 - 最高有效字節必須爲零。

+0

我以前讀它,是的,現在看來,這是不是更多鈔票,以與其他公司標識符iBeacons獲取數據。蘋果希望鎖定其設備。感謝您的回覆。 – Fulgor3 2014-11-04 08:45:30

+0

davidgyoung,一個問題,所以如果我使用0x0000公司代碼,應用程序iBeacon Locate會檢測到設備?因爲我嘗試了它,它只有當我設置蘋果的一個0x004c,否則沒有找到信標。我展示了一個廣告嗅探器捕獲示例: – Fulgor3 2014-11-05 08:43:22

+0

使用Nordic Semiconductors公司標識符的藍牙包: | info | Packet nbr。 |時間戳|長度|分組數據 | 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 使用Apple公司標識符的藍牙數據包: | 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 9A AB BC CD DE EF F0 00 00 00 00 C5 E8 19 24 3A A5 – Fulgor3 2014-11-05 08:52:53

-1

改爲CoreLocation嘗試使用CoreBluetooth Framework。

你應該擁有所有的BLE信息在這裏:

- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI. 
+0

你的想法很好,但是正如davidgoung在第一個答案中所說的那樣,看起來好像不可能得到那些廣告,而且如果你使用CoreBluetooth Framework,你將只能得到UUID而沒有別的。我的想法是從特定的UUID獲得Id標識符,Major和Minor。 – Fulgor3 2014-11-04 09:02:15

相關問題