Кто-нибудь был в состоянии использовать [[UIScreen mainScreen] setBrightness] на фоне / выходе?

Похоже, что в 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 и теперь обнаружил, что не могу восстановить яркость экрана. Это явно ошибка, но мне было интересно, если кто-нибудь обнаружил обходной путь?

Вот очень простое тестовое приложение-прототип, которое доказывает ошибку:

https://github.com/philask/Dockclock-iOS

1 ответ

Я не пытался восстановить его, когда мое приложение входит в фоновый режим... но я заметил, что оно будет восстановлено, когда вы заблокируете и разблокируете устройство.

Другие вопросы по тегам