setBrightness в методах appdelegate? - PullRequest
2 голосов
/ 30 ноября 2011

Почему я не могу установить яркость экрана в applicationDidEnterBackground или applicationWillResignActive?

Это мой код:

- (void)applicationDidEnterBackground:(UIApplication *)application
{        
    [[UIScreen mainScreen] setBrightness:1.0]; 
}

Не могу понять это ...!? Он работает в applicationDidEnterForeground и т. Д., Но только когда я закрываю приложение с помощью кнопки «Домой».

Спасибо всем, кто может помочь ...

Ответы [ 2 ]

1 голос
/ 30 ноября 2011

Вероятно, это связано с тем, что ваше приложение передает управление ОС, а ОС будет управлять яркостью в соответствии с глобальными настройками пользователя.Если вы хотите изменить настройку яркости глобально, вам необходимо получить доступ к глобальным настройкам iphone пользователя и изменить их, и я не уверен, что это возможно.

Когда вы устанавливаете яркость на applicationDidEnterForeground: ваше приложение снова находится под контролем и может регулировать такие вещи, как яркость.Как только ваше приложение теряет этот контроль, ОС начинает работать и возвращает устройство в соответствие с глобальными настройками пользователя.

Надеюсь, это поможет.

0 голосов
/ 24 декабря 2011

Я почти уверен, что это ошибка в текущей версии (что вызов setBrightness не действует ни внутри applicationDidEnterBackground, ни applicationWillResignActive).

То, что я делаю в настоящее время, похоже на то, к чему вы пришли -Я устанавливаю яркость на 1.0 в активном приложении, а затем уменьшаю яркость, когда необходимо, изменяя непрозрачность черного слоя поверх всей другой графики.Таким образом, если пользователь приостанавливает приложение, то его экран, по крайней мере, яркий (а не при любой произвольной яркости, в которой было приложение).

Когда пользователь блокирует свой экран, он будет восстановлен до яркостив настройках iPhone.

...