Можно ли получить рекламу Beacon в IOS без использования идентификатора компании Apple 0x004c

Я разработал приложение для Android, чтобы получать данные от iBeacon, так как я мог получить необработанные данные, у меня не было проблем с этим, но в IOS это невозможно, и кажется, что было невозможно получать пакеты, которые не в рекламе нет идентификатора компании Apple 0x004c. Можно ли получать рекламу с устройств, рекламирующих с использованием других идентификаторов компании? Если это возможно, можно ли получить идентификационный код компании? Мне не удалось ничего найти в документации, предоставленной Apple, или в поиске на нескольких форумах.

Любая идея будет действительно приветствоваться.

Сниффер фиксирует следующее:

Идентификатор компании Nordic Semiconductors:

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

Идентификатор компании Apple:

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


person Fulgor3    schedule 03.11.2014    source источник


Ответы (2)


Нет, невозможно прочитать необработанные байты рекламы маяка в iOS с помощью CoreBluetooth или иным образом получить доступ к балансовой единице или другим полям. Вы можете получить только поля, предоставленные CoreLocation, в основном идентификатор маяка из трех частей. См. здесь: http://developer.radiusnetworks.com/2013/10/21/corebluetooth-doesnt-let-you-see-ibeacons.html

Эксперименты показывают, что CoreLocation API-интерфейсы будут обнаруживать объявления-маяки только с кодом компании 0x00ff или меньше — старший байт должен быть равен нулю.

person davidgyoung    schedule 03.11.2014
comment
Я читал это раньше, и да, кажется, невозможно получить данные из iBeacons с другими идентификаторами компании. Apple хочет заблокировать свои устройства. Спасибо за ваш ответ. - person Fulgor3; 04.11.2014
comment
davidgyoung, один вопрос, если я использую код компании 0x0000, приложение iBeacon Locate обнаружит устройство? Потому что я пробовал, и это работает только тогда, когда я устанавливаю один Apple 0x004c, иначе маяк не найден. Я показываю пример захвата рекламного сниффера: - person Fulgor3; 05.11.2014
comment
Пакет Bluetooth с использованием идентификатора компании Nordic Semiconductors: |info| Номер пакета | Отметка времени | Длина| Пакетные данные | 01 | 0С 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 Пакет Bluetooth используя идентификатор компании Apple: | 01 | 01 00 00 00 | ЭД 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 A 54 3A - person Fulgor3; 05.11.2014
comment
Извините, я действительно не могу комментировать детали рекламного формата iBeacon, поскольку он является собственностью. - person davidgyoung; 05.11.2014
comment
Без проблем! Спасибо, в любом случае. Насколько я знаю, невозможно получить рекламу без идентификатора компании Apple, по крайней мере, я не могу. С уважением - person Fulgor3; 06.11.2014

Вместо CoreLocation попробуйте использовать CoreBluetooth Framework.

У вас должна быть вся информация BLE здесь:

- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI.
person David Santana    schedule 03.11.2014
comment
Ваша идея хороша, но, как сказал davidgoung в первом ответе, кажется, что получить эти объявления невозможно, и если вы используете CoreBluetooth Framework, вы сможете получить только UUID и ничего больше. Моя идея состояла в том, чтобы получить идентификатор Id, Major и Minor из определенного UUID. - person Fulgor3; 04.11.2014