Используя CoreBluetooth, можно получить необработанную запись сканирования устройства Bluetooth LE

Я пытаюсь лучше понять Bluetooth LE и экспериментировал со стеками Bluetooth для iOS и Android, а также с различными маячками (StickNFind, Estimote и т. Д.)

  • В Android при обнаружении устройства я получаю необработанную «запись сканирования» - большой двоичный объект данных, который я могу проанализировать самостоятельно, чтобы получить объявленные данные устройства.
  • В iOS это анализируется iOS и представляется в виде словаря.

Достаточно справедливо, за исключением того, что я пытался использовать CoreBluetooth (т.е. не службы определения местоположения) для чтения данных рекламы с iBeacon и заметил, что iOS, похоже, удаляет рекламные данные производителя для устройств iBeacon.

Я понимаю, что мне, вероятно, следует использовать санкционированные Apple способы обнаружения iBeacon, но это действительно не соответствует нашему варианту использования, и мне интересно, есть ли способ обойти это.


person Brad Robinson    schedule 03.03.2014    source источник
comment
взгляните на этот beekn.net/2013/10/   -  person Julian    schedule 03.03.2014


Ответы (1)


РЕДАКТИРОВАТЬ: iOS позволяет получить доступ к необработанным данным для любой рекламы Bluetooth, которая не соответствует формату iBeacon.

К сожалению, iOS блокирует доступ к необработанным данным всех рекламных объявлений BLE , в том числе iBeacons. Это делает невозможным доступ к идентификаторам iBeacon с CoreBluetooth.

Подробности см. В этом сообщении в блоге.

person davidgyoung    schedule 03.03.2014
comment
Это верно ТОЛЬКО для iBeacons. Вы действительно можете получить необработанные рекламные данные для любой другой рекламы LE на iOS: [advertisementData objectForKey:CBAdvertisementDataManufacturerDataKey] - person kitti; 30.03.2016
comment
Ты прав. Я не знал этого, когда отправлял ответ. Я уточню. - person davidgyoung; 30.03.2016