2016-05-24 7 views
4

Ich habe eine Android-App, die einen BroadcastReceiver für ältere Android-Versionen und eine JobScheduler-basierte Implementierung für Android 5.0+ verwendet, die meine App automatisch startet, wenn das Telefon mit dem Ladegerät verbunden wird (Es führt nämlich einen IntentService aus, um einige Dateien zu verarbeiten).iOS - Swift - Rückruf bei eingestecktem Telefon

Ich möchte in der Lage sein, das gleiche auf iOS (in Swift) zu tun. Ich habe sehr wenig Suche auf Google und dieser Website gefunden, ich denke, dass NSNotificationCenter damit verwandt ist, aber ich weiß es immer noch nicht.

Also, gibt es eine Entsprechung dazu auf iOS?

Vielen Dank.

Antwort

1

In iOS haben wir nicht immer den gleichen Zugang auf Geräteebene wie bei Android. Unsere Anwendungen können nur Benachrichtigungen empfangen, wenn sie nicht beendet wurden.

Wenn Ihre Anwendung den Vordergrund hat, verwenden Sie den folgenden Code, um auf den Batteriezustand des Geräts zuzugreifen.

Sie können auch den folgenden Code ausführen, um den Akkuzustand des Geräts zu bestimmten Zeiten zu überprüfen, wenn Ihre Anwendung den Hintergrund erreicht. HINWEIS - Wenn Sie Folgendes tun, werden Sie höchstwahrscheinlich von einer App Store-Version abgelehnt.

func applicationDidEnterBackground(application: UIApplication) { 
    // Begins battery state monitoring // 
    UIDevice.currentDevice().batteryMonitoringEnabled = true 
    // Schedules NSTimer with intervals of 10 seconds // 
    NSTimer.scheduledTimerWithTimeInterval(10, target: self, selector: #selector(batteryCheck), userInfo: nil, repeats: true) 
} 

func batteryCheck() { 
    if (UIDevice.currentDevice().batteryState != .Unplugged) { 
     print("Device is charging.") 
    } else { 
     print("Device is NOT charging.") 
    } 
}