Я пытаюсь вызвать событие, основанное на iBeaconsIBeacon события в то время как экран выключен
Это прекрасно работает, когда приложение работает на переднем плане, фоне, но не приостановлено (экран выключен с кнопкой питания)
Я вижу сообщения NSLog, когда на экране блокировки, но не тогда, когда экран устройства выключен.
Есть ли способ сделать это? (Только соответствующий раздел)
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSLog(@"applicationDidFinishLaunching");
_locationManager = [[CLLocationManager alloc] init];
_locationManager.delegate = self;
[_locationManager requestAlwaysAuthorization];
CLBeaconRegion *region;
region = [[CLBeaconRegion alloc] initWithProximityUUID:[[NSUUID alloc] initWithUUIDString:@"EBEFD083-70A2-47C8-9837-E7B5634DF524"] major: 9 minor: 103 identifier: @"region1"];
region.notifyEntryStateOnDisplay = YES;
region.notifyOnEntry = YES;
region.notifyOnExit = YES;
[_locationManager startMonitoringForRegion:region];
[_locationManager startRangingBeaconsInRegion:region];
return YES;
}
- (void)locationManager:(CLLocationManager *)manager didDetermineState:(CLRegionState)state forRegion:(CLRegion *)region
{
if(state == CLRegionStateInside) {
NSLog(@"locationManager didDetermineState INSIDE for %@", region.identifier);
}
else if(state == CLRegionStateOutside) {
NSLog(@"locationManager didDetermineState OUTSIDE for %@", region.identifier);
}
else {
NSLog(@"locationManager didDetermineState OTHER for %@", region.identifier);
}
}
- (void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region
{
if (beacons.count > 0)
{
NSLog(@"locationManager didRangeBeacons: %@",beacons.description);
}
}
Info.plist::
AppDelegate.m
<key>NSLocationAlwaysUsageDescription</key>
<string>app location requested</string>
<key>UIBackgroundModes</key>
<array>
<string>location</string>
<string>voip</string>
<string>bluetooth-peripheral</string>
<string>bluetooth-central</string>
<string>external-accessory</string>
</array>
Вы можете попробовать добавить «Privacy - Location Описание использования» ключ к файлу Plist (если вы еще не добавили его еще). – 4esterUA