Я разрабатываю приложение, которое будет использовать iBeacons для внутренней навигации, и обнаружил, что скорость вызова функции locationManager:rangingBeaconsDidFailForRegion:withError:
недостаточно высока, поэтому я собираюсь добавить данные RSSI из centralManager:didDiscoverPeripheral:advertisementData:RSSI:
CoreBluetooth.
И я обнаружил любопытный факт: когда я слушаю iBeacon с CoreLocation и регистрирую идентификатор периферии:
- (void)centralManager:(CBCentralManager *)central
didDiscoverPeripheral:(CBPeripheral *)peripheral
advertisementData:(NSDictionary *)advertisementData
RSSI:(NSNumber *)RSSI
{
NSLog(@"%@, RSSI: %@", peripheral, RSSI);
о каждом маяке сообщается с другим UUID на разных устройствах:
A25804BD-D77A-5004-4C2C-301D996C7367 - my iPhone 5
843F4237-6059-9A5E-AA34-0BD92304BE1F - colleague's iPhone 5
77685805-C253-52BD-B787-8B95308834FB - other colleague's iPad mini
Идея заключалась в том, чтобы привязать UUID каждого маяка к его местоположению, поэтому такое поведение сильно нарушает функциональность.
Почему UUID физически одного и того же маяка (не выключенного/включенного) отличается на разных устройствах? Это ожидаемое поведение? Если да, то как я могу отказаться от этого?