Я пытаюсь реализовать iBeacon в ситуации развития, когда у меня нет реальных маяков для тестирования. Я использую «Beacon Bits», который является эмулятором, работающим на iPad. Я пробовал другие эмуляторы маяка, чтобы исключить возможность того, что эмулятор может быть проблемой. Итак, я использую эмулятор, работающий на iPad, и мое приложение работает на iPhone. Я не использую симулятор XCode, оба являются реальными устройствами.iBeacon не обнаружен с маяковым симулятором
Я добавил необходимые разрешения менеджера местоположений, которые, как представляется, необходимы в iOS8. Я также гарантировал, что они в моем plist.
Я дважды проверил, что bluetooth включен как на эмуляторе, так и на устройстве, на котором работает приложение, которое должно обнаружить эмулятор маякового радиосигнала.
Когда я запустил приложение, ответа нет, и ни один из методов делегирования менеджера местоположений не запускается. Вот код для моего контроллера:
-(void)viewDidLoad {
[super viewDidLoad];
self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.delegate = self;
if([self.locationManager respondsToSelector:@selector(requestAlwaysAuthorization)]){
[self.locationManager requestAlwaysAuthorization];
}
if([self.locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)]){
[self.locationManager requestWhenInUseAuthorization];
}
uuid = [[NSUUID alloc] initWithUUIDString:UUID_STRING];
self.region = [[CLBeaconRegion alloc] initWithProximityUUID:uuid identifier:BEACON_NAME];
[self.locationManager startMonitoringForRegion:self.region];
[_responseLabel setText:@"Waiting..."];
}
-(void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region {
[self.locationManager startRangingBeaconsInRegion:self.region];
NSString* foundMessage = [NSString stringWithFormat:@"Region Entered for: %@", BEACON_NAME];
[_responseLabel setText:foundMessage];
}
-(void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region {
[self.locationManager stopRangingBeaconsInRegion:self.region];
}
-(void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region {
[_responseLabel setText:@"BEACON FOUND"];
CLBeacon* foundBeacon = [beacons firstObject];
NSString* foundMessage = [NSString stringWithFormat:@"Beacon Found: %@", BEACON_NAME];
[_responseLabel setText:foundMessage];
}
Любые предложения по тому, почему это не отвечает? Благодаря!
Поддерживает ли ваш Macbook BLE (низкая энергия Bluetooth)? – ridvankucuk
Вы не можете проверить с помощью симулятора. используйте какое-то устройство. http://stackoverflow.com/questions/22109083/can-i-develop-ibeacon-application-with-the-ios-simulator – ErasmoOliveira
Я не использую симулятор XCode для тестирования. И мой эмулятор маяка, и мое приложение работают на физических устройствах. – Pheepster