iOSには以前に文書化された(そして報告された)バグがあるようです(それでも「最新のiOS」に存在するようです)。つまり、アプリケーションの起動後に[[UIScreen mainScreen] setBrightness:x]を使用できます。バックグラウンドイベント中はいつでも呼び出すことはできません(つまり、アプリが起動する前のレベルに明るさを復元することはできません)。
// Works as expected, screen dims
- (void)applicationDidBecomeActive:(UIApplication *)application
{
NSLog(@"applicationDidBecomeActive");
// Dim the screen (works)
[[UIScreen mainScreen] setBrightness:0.2];
}
だが...
// Seems to fire if you double-tap the home key ('task manager' ;)
// Doesn't work
- (void)applicationWillResignActive:(UIApplication *)application
{
NSLog(@"applicationWillResignActive");
[[UIScreen mainScreen] setBrightness:1.0];
}
この背景には、成功したDock ClockアプリをAndroidからiOSに移植していて、画面の明るさを復元できないことがわかりました。明らかにバグですが、誰かが回避策を発見したのではないかと思いました。
これは、バグを証明する非常に単純なプロトタイプテストアプリです。