заставить экран iPad выключаться, но просыпаться касанием (без блокировки) - - iOS 6.0 / openFrameworks

На iPad iOS 6.0 как можно сделать так, чтобы экран действительно уходил в сон, или как-то отключал графику для сохранения жизни экрана, но iPad не блокировался, и нажимать на кнопку не надо. Вместо этого при прикосновении к экрану iPad полностью просыпается, а программа восстанавливается и продолжает работать на экране.

Я понимаю, что сенсорная функция не работает, когда iPad действительно переходит в спящий режим, поэтому существует ли промежуточный спящий режим, в котором экран отключает яркость всех пикселей, но остается готовым к любым сенсорным уведомлениям?


person user1798714    schedule 04.11.2012    source источник


Ответы (2)


Вам нужно будет предотвратить «настоящий» механизм блокировки, который можно сделать с помощью метода setIdleTimerDisabled: вашего экземпляра UIApplication.

[[UIApplication sharedApplication] setIdleTimerDisabled:YES];

Затем вы можете уменьшить яркость экрана, используя метод setBrightness: общего экземпляра UIScreen.

[[UIScreen mainScreen] setBrightness:0.0f];

Для «разблокировки» экрана сделайте обратное:

[[UIApplication sharedApplication] setIdleTimerDisabled:NO];
[[UIScreen mainScreen] setBrightness:1.0f];
person Till    schedule 04.11.2012
comment
Отлично, большое спасибо. Однако я очень новичок в проектах iOS, поэтому не знаю, куда поместить эти строки кода. Мой проект XCode основан на примере проекта openFrameworks. Не могли бы вы дать какие-либо советы о том, где мне нужно разместить их в проекте OF? - person user1798714; 05.11.2012
comment
Вы можете вызывать эти функции в любом месте вашего кода. Поэтому решите, где вы хотите выполнить шаги блокировки и разблокировки, и вы можете поместить это туда. - person Bergasms; 05.11.2012

Поместите черный uiview на все, используйте

[[UIScreen mainScreen] setBrightness:0.0];

, чтобы отрегулировать яркость как можно ниже, а затем отменить эти шаги при касании.

это единственный способ, который я могу придумать, чтобы эмулировать необходимую вам функциональность без использования какого-либо частного API.

РЕДАКТИРОВАТЬ: setBrightness будет работать только на ios 5.0 и выше

person Bergasms    schedule 04.11.2012