iOS 에너지 가이드를 따르고 저전력 모드를 인식하려고합니다. 이를 위해 here에 게시 된 가이드를 따르면서이 유형의 이벤트를 구독하는 방법에 대한 코드를 제공합니다. 아래에 표시된대로이 함수를 구현했습니다.iOS에서 저전력 모드 알림을 수신하지 못했습니다.
/// Function to subscribe to low-power mode events
///
func subscribeToLowBatteryNotification() {
NotificationCenter.default.addObserver(self,
selector: #selector(lowBatteryHandle),
name: Notification.Name.NSProcessInfoPowerStateDidChange,
object: nil)
}
/// handler for low-power mode events.
///
@objc func lowBatteryHandle(_ notification: Notification) {
let lowPowerModeEnabled = ProcessInfo.processInfo.isLowPowerModeEnabled
if lowPowerModeEnabled {
stopTrackingBackground()
} else {
startTrackingBackground()
}
}
이것은 매우 간단합니다. 그런 다음 필요에 따라 위치를 지속적으로 추적하면서 백그라운드에서 앱을 배치합니다. 그런 다음 저전력 모드를 활성화하고 실제로 백그라운드에서받은 알림이 추적을 일시 중단하도록 앱을 성공적으로 유도합니다. 불행히도, 저전력이 이 비활성화 된 경우과 상태 변경에 대한 비슷한 이벤트가 백그라운드에서 수신 될 것으로 예상됩니다. 백그라운드에서 수신되지 않으며 이벤트가 앱에 다시 입력 될 때만 앱에 전달됩니다. . 누구든지 백그라운드에서 이러한 이벤트를받는 방법을 알고 있습니까?
이것이 절전 모드에서 허용되며 응용 프로그램을 종료하지 않을 것이라고 확신합니까? – jtimz
@jtimz 모든 사과 문서와 마찬가지로 좋은 정보이지만 정보를 추적 할 때가 있습니다. 문서에서 더 많은 증거로 내 대답을 업데이트했습니다. –
철저한 답장을 보내 주셔서 감사합니다. 나는이 필터들로 꽤 놀았지만 저전력 모드가 아니라면 (100 미터 내에서) 꽤 좋은 정확도가 필요합니다. 또한 새로운 설정을 적용하려면 위치 추적 관리자를 다시 시작해야한다고 생각합니다. 그렇게함으로써 나는 그 응용을 죽일 위험에 처해있다. 나는 틀린가? – jtimz