Измените яркость подсветки на iPhone программно

StackOverflow https://stackoverflow.com/questions/366889

  •  21-08-2019
  •  | 
  •  

Вопрос

Предоставляет ли SDK какой-либо способ изменить яркость подсветки или временно отключить ее?

Это было полезно?

Решение

Нет.Это недоступно в SDK.Если это что-то, что, по вашему мнению, было бы полезно, я предлагаю вам подать запрос на улучшение.

Другие советы

Я пытаюсь сделать то же самое.Так получилось, что в Интернете есть несколько постов с "решениями" для этого.

Наиболее подробным является здесь Это нечто большее лаконичный

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

GSEventSetBacklightLevel();

для чего требуется импортировать этот заголовок

#import <GraphicsServices/GraphicsServices.h>

И этот импорт завершается с ошибкой в SDK, сообщающем, что файл заголовка не может быть найден.

Я искал какое-нибудь решение, но не нашел его.Есть некоторые разговоры о "создании цепочки инструментов" (лучшее описание, которое я нашел, см. здесь) но это, похоже, предполагает полный обход SDK.Довольно радикально.

Краткие сведения:Это возможно, но не со стандартным iPhone SDK.Я предполагаю, что скоро выйдет обновление SDK, которое должно позволить это.

Дайте мне знать, если найдете какое-либо другое решение.

-(void)changeLight{

    GSEventSetBacklightLevel(float number);//number between 0.0 - 1.0
}

вызовите приведенный выше метод, используя

[self performSelector:@selector(changeLight) withObject:nil afterDelay:0.0];

вы можете добавить частный фреймворк, просто перетащив его в свой проект xcode из /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/System/Library/PrivateFrameworks/GraphicsServices.framework.

Также добавьте заголовок #import "GraphicsServices.h" в ваш файл .h..вспомни:поскольку вы используете private framework, ваше приложение отклонит push-запрос в App Store

В моем SDK (5.0.1) кажется, что "GraphicsServices.h" больше не существует, но вы можете объявить его самостоятельно следующим образом:

void GSEventSetBacklightLevel(float level);

Обратите внимание, что компоновщик будет жаловаться, если вы не включите фреймворк GraphicsServices.framework в свой проект.

Что касается вашего вопроса об отключении подсветки, я выяснил, что вы можете сделать это, передав очень большое отрицательное число в GSEventSetBacklightLevel, вот так:

GSEventSetBacklightLevel(-INFINITY);

В моих тестах это полностью затемнит экран.

Помните, что это все равно может привести к выгоранию пикселей ЖК-дисплея, если вы отображаете статичную графику, даже при выключенной подсветке.И что этот вызов вызовет отклонение, если он будет отправлен в app Store.

попробуйте этот код.я надеюсь, что это поможет...

//в поле зрения появится

float prevBrightnessLevel = [Главный экран пользовательского интерфейса].яркость;

[Главный экран UIScreen]. яркость = 1,0;

//в поле зрения исчезнет

[Главный экран пользовательского интерфейса]. яркость = Предыдущий уровень яркости;

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top