2016-05-24 2 views
4

У меня есть приложение для Android, которое использует BroadcastReceiver для более старых версий Android и версию на основе JobScheduler для Android 5.0+, которая автоматически запускает мое приложение, когда телефон подключается к зарядному устройству (а именно, он выполняет IntentService для обработки некоторых файлов).iOS - Swift - обратный вызов при подключении телефона

Я хочу иметь возможность делать то же самое на iOS (в Swift). Я нашел очень мало поисков в Google и на этом сайте, я думаю, возможно, NSNotificationCenter связан с этим, но все же я не знаю.

Итак, есть ли эквивалент этого на iOS?

спасибо.

ответ

1

В iOS у нас нет одинакового доступа на уровне устройства во все времена, как в Android. Наши приложения могут получать уведомления, такие как состояние батареи, когда они не были прерваны.

Если ваше приложение имеет передний план, попробуйте использовать приведенный ниже код для доступа к состоянию аккумулятора устройства.

// Begins battery state monitoring // 
UIDevice.currentDevice().batteryMonitoringEnabled = true 
// Check for battery's current status // 
if (UIDevice.currentDevice().batteryState != .Unplugged) { 
    print("Device is plugged in.") 
} 

Вы также можете запустить следующий код, чтобы проверить состояние батареи устройства в установленные сроки, когда ваше приложение достигает фона. ПРИМЕЧАНИЕ. Выполнение следующего, скорее всего, приведет к отказу от выпуска в App Store.

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.") 
    } 
}