Есть ли способ программно отключить отображение в iOS? Не только снижение яркости, но и отключение, как это делает приложение для телефона. Я рад использовать частный API, так как это для личного использования.
Спасибо!
Есть ли способ программно отключить отображение в iOS? Не только снижение яркости, но и отключение, как это делает приложение для телефона. Я рад использовать частный API, так как это для личного использования.
Спасибо!
Вы можете отключить отображение, включив мониторинг близости. Он автоматически отключит экран, например, в приложении "Телефон", поместив телефон рядом с ушами или поместив палец по ИК-датчику в верхней части телефона.
[UIDevice currentDevice].proximityMonitoringEnabled = YES;
Вы можете сделать это (очевидно, используя частные 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" здесь означает полностью отключить экран. Это то, что использует система, когда, например, событие соприкосновения происходит во время вызова.
Единственный способ, которым я знаю, публичный или частный, - использовать кнопку питания.
Вы можете посмотреть -[UIApplication setProximitySensingEnabled:(BOOL)]
или -[UIApplication setIdleTimerDisabled:YES]
, это может привести к чему-то полезному
Вы пробовали:
[[UIScreen mainScreen] setBrightness: yourvalue];
SO question 8936999: iPhone: как мы можем программно изменить яркость экрана?
Проксимити не работает на всех устройствах. Там гораздо проще решить эту проблему, не прибегая к частным API.
Swift
UIScreen.main.wantsSoftwareDimming = true
UIScreen.main.brightness = 0.0
Без wantsSoftwareDimming
подсветка никогда не будет полностью отключена.
Документы имеют это предостерегающее предложение:
Значение по умолчанию - false. Включение этого может привести к потере производительности.
Я не думаю, что есть возможность выключить дисплей (имитируя кнопку сна iphone), кроме изменения яркости.
Эта ссылка может помочь.