Бывают случаи, когда вам действительно необходимо приостановить приложение (перевести его в фоновый режим, как при нажатии кнопки «Домой») и при этом сохранить яркость, ранее установленную на экране.
Пример:
В настоящее время я работаю над подводным приложением (по научным причинам оно снимает фотографии с iPhone в водонепроницаемом чехле), и у нас нет доступа ко всему экрану устройства.
Подводный корпус оснащен 3 механическими «сенсорными» кнопками в очень специфических местах, и мы должны отключить функцию автоблокировки, потому что нет способа выполнить жест скольжения, чтобы разблокировать устройство.
Нам все еще нужен способ сохранить время работы от батареи, когда приложение не используется, то есть приостановить работу приложения и установить низкий уровень яркости экрана.
Решение, которое мы реализовали:
a) Мы просим пользователя отключить автоматическую настройку яркости в настройках и отключить функцию автоматической блокировки
б) Превратим Яркость в 100% для класса ApplicationDelegate:
- (void)applicationDidBecomeActive:(UIApplication *)application
{
// Adjust Brightness to full
[[UIScreen mainScreen] setBrightness:1.0];
}
c) Мы выполняем следующий код нажатием кнопки приложения, чтобы приложение перешло в фоновый режим (не потребляя циклов ЦП) и яркость перешла на более низкий возможный уровень (сохраните батарею):
[[UIScreen mainScreen] setBrightness:0.0]; // Set to low brightness
[[UIApplication sharedApplication] performSelector:@selector(suspend)]; // Simulate Home button
Надеюсь, это кому-нибудь пригодится.
PS: Руководства по интерфейсу Apple Human - это одно, а реальные потребности реальных приложений - это другое (вы не можете ничего предсказать или ограничить заранее).