2016-03-22 2 views
0

в моих проектах я обнаруживая в devices.here маяки в делегат метода дает пустое значение массиваdidRangeBeacons дает пустой массив в Objective C

это дает пустое значение массива:

-(void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region{ 
NSLog(@"beacons list %@ ",beacons); 
} 

Обновлено:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
NSUUID *uuid=[[NSUUID alloc]initWithUUIDString:UUID]; 
    clBeconRegion=[[CLBeaconRegion alloc]initWithProximityUUID:uuid identifier:@"BluetoothExample"]; 
    [locManager startMonitoringForRegion:clBeconRegion]; 
    clBeconRegion.notifyEntryStateOnDisplay=YES; 
} 
+0

Вы установили правильный UUID для ваших маяков? – Larme

+0

Да. Устанавливаем правильный UUID – Test

+0

Вы покажете код, который вы используете для настройки диапазона маяков? Это должно включать: создание региона, установку делегата CLLocationManager, запрос разрешений на размещение и добавление строки разрешений в ваш файл .plist. Было бы также полезно, если бы вы могли проверить, что вы можете обнаружить передающий маяк, используя готовое приложение-детектор, например [Locate] (https://itunes.apple.com/us/app/locate-beacon/id738709014? mt = 8) – davidgyoung

ответ

0

для того, чтобы получить didRangeBeacons вернуть непустой массив, необходимо вызвать следующий метод:

[self.locationManager startRangingBeaconsInRegion:beaconRegion]; 

Кроме того, я гарантирую, что ближайший маяк имеет тот же UUID, и вы ввели NSLocationAlwaysUsageDescription в свой info.plist. Также убедитесь, что вы создали свой менеджер locationManager и установите его делегат.

+0

Я попробовал этот метод, и он дает только пустой – Test

+0

, что вы используете для трансляции сигнала маяка? – RDSpinz

+0

ipad mini & beacon real device – Test

Смежные вопросы