Подтвердить что ты не робот

Выключить отображение в iPhone OS (iOS)

Есть ли способ программно отключить отображение в iOS? Не только снижение яркости, но и отключение, как это делает приложение для телефона. Я рад использовать частный API, так как это для личного использования.

Спасибо!

4b9b3361

Ответ 1

Вы можете отключить отображение, включив мониторинг близости. Он автоматически отключит экран, например, в приложении "Телефон", поместив телефон рядом с ушами или поместив палец по ИК-датчику в верхней части телефона.

[UIDevice currentDevice].proximityMonitoringEnabled = YES;

Ответ 2

Вы можете сделать это (очевидно, используя частные API):

на iOS5:

#include <stdio.h>
#include <dlfcn.h>

int (*SBSSpringBoardServerPort)() = (int (*)())dlsym(RTLD_DEFAULT, "SBSSpringBoardServerPort");
int port = SBSSpringBoardServerPort(); 
void (*SBDimScreen)(int _port,BOOL shouldDim) = (void (*)(int _port,BOOL shouldDim))dlsym(RTLD_DEFAULT, "SBDimScreen");

а затем используйте

SBDimScreen(port,YES); 

когда вы хотите сгладить, и

SBDimScreen(port,NO);

когда вы хотите похудеть.

В iOS6:

void (*BKSDisplayServicesSetScreenBlanked)(BOOL blanked) = (void (*)(BOOL blanked))dlsym(RTLD_DEFAULT, "BKSDisplayServicesSetScreenBlanked");

а затем используйте:

BKSDisplayServicesSetScreenBlanked(1); // 1 to dim, 0 to undim

"Dim" здесь означает полностью отключить экран. Это то, что использует система, когда, например, событие соприкосновения происходит во время вызова.

Ответ 3

Единственный способ, которым я знаю, публичный или частный, - использовать кнопку питания.

Вы можете посмотреть -[UIApplication setProximitySensingEnabled:(BOOL)] или -[UIApplication setIdleTimerDisabled:YES], это может привести к чему-то полезному

Ответ 5

Проксимити не работает на всех устройствах. Там гораздо проще решить эту проблему, не прибегая к частным API.

Swift

UIScreen.main.wantsSoftwareDimming = true
UIScreen.main.brightness = 0.0

Без wantsSoftwareDimming подсветка никогда не будет полностью отключена. Документы имеют это предостерегающее предложение:

Значение по умолчанию - false. Включение этого может привести к потере производительности.

Ответ 6

Я не думаю, что есть возможность выключить дисплей (имитируя кнопку сна iphone), кроме изменения яркости.

Эта ссылка может помочь.