2016-04-28 15 views
1

Ich habe eine lokale Benachrichtigung zur Überprüfung des Batteriestatus implementiert. Wenn der Akkuladestand um 1% sinkt, wird eine lokale Benachrichtigung empfangen. Dies funktioniert für beide, dh App ist im Vordergrund oder Hintergrund für iOS Version unter 9. Wenn ich Geräte OS auf iOS 9 aktualisiere, dann habe ich lokale Benachrichtigung im Vordergrund aber kann keine Benachrichtigung im Hintergrund der Anwendung erhalten. Folgendes ist der Code, der zur Implementierung verwendet wird.Akku-Level-Benachrichtigung funktioniert nicht, wenn App im Hintergrundmodus ist

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 

// Enable monitoring of battery status 

**[[UIDevice currentDevice] setBatteryMonitoringEnabled:YES];** 

// Request to be notified when battery charge or state changes 

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(checkBatteryStatus) name:UIDeviceBatteryLevelDidChangeNotification object:nil]; 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(checkBatteryStatus) name:UIDeviceBatteryStateDidChangeNotification object:nil]; 
} 

- (void)applicationDidEnterBackground:(UIApplication *)application { 

     // Request to be notified when battery charge or state changes 

    [[UIDevice currentDevice] setBatteryMonitoringEnabled:YES]; 

    **[[NSNotificationCenter defaultCenter] postNotificationName:UIDeviceBatteryLevelDidChangeNotification object:nil userInfo:nil];** 

    **[[NSNotificationCenter defaultCenter] postNotificationName:UIDeviceBatteryStateDidChangeNotification object:nil userInfo:nil];** 

} 

- (void)checkBatteryStatus 
{ 
    notifyAlarm = [[UILocalNotification alloc] init]; 

    notifyAlarm.alertBody = @“battery alert"; 
    notifyAlarm.soundName = UILocalNotificationDefaultSoundName; 
    [[UIApplication sharedApplication] presentLocalNotificationNow:notifyAlarm]; 
    [self displayNotification]; 
} 

In displayNotification Methode zeigen wir Benachrichtigung.

Ich auch Hintergrundmodus der App aktivieren, d. H. Im Screenshot gezeigt.

enter image description here

Jede Hilfe würde geschätzt. Danke im Voraus.

Antwort

0

Sie haben den Hintergrundabrufmodus aktiviert. Dies bedeutet, dass Ihre App Remotebenachrichtigungen empfangen und Netzwerkanforderungen im Hintergrund ausführen kann.

Ohne fragwürdige und App Store abweisende Methoden zu verwenden, ist es nicht möglich zu tun, was Sie wollen. Apple möchte ausdrücklich nicht, dass Sie Ihre Anwendung im Hintergrund ausführen können, es sei denn, Sie verfügen über einen ihrer genehmigten Anwendungsfälle.