アプリがバックグラウンドのときに画面の明るさを制御しようとしていますが、これが可能かどうかわかりません。デバイスがロックされるまでアプリ製iOS:アプリがバックグラウンドの間に画面の明るさを設定する
明るさ変化に関係なく、アプリケーションが閉じているかどうか、有効のまま
this UIScreen brightness documentationノート。次回のディスプレイの電源をオンにすると、システムの明るさ(ユーザーが[設定]または[コントロールセンター]で設定できる)が復元されます。
これはバックグラウンドで、アプリケーションのメインスレッドなどで画面の明るさを設定できないとは言えません。明るさはロック/アンロックのサイクルでリセットされるだけであることを示しています。
は以下のスニペットを考えてみます。backgroundTask = UIApplication.shared().beginBackgroundTask(withName: "something", expirationHandler: handler) // handler ends the background task
registerCallbackForSomeEvent(callback: changeScreenBrightness)
イベントは無関係です。私はアプリケーションが中断されている間に印刷することができ、すべて正常に動作します。
とchangeSCreenBrightness()
の実装には、次のようなものです:
func changeScreenBrightness() {
let newBrightness = getNewBrightnessSomehow()
// main or global, it doesn't seem to be happening...
DispatchQueue.main.async(execute: {
// this works in the foreground?! but not the background..
UIScreen.main().brightness = newBrightness
// a print() will be executed however..
})
}
..だから誰もが決定的にこれが不可能であると言うことができますか?誰かが私が勉強できる作業コードを持っていますか?
ありがとうございました!