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

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

14.12.2008 19:34:41
Взгляните на обсуждение здесь: iphonedevsdk.com/forum/iphone-sdk-development/… .
Robert Gamble 14.12.2008 20:45:18
Это выглядит полезным. Я по крайней мере попробую это в исследовательских целях.
Greg 15.12.2008 02:10:28
5 ОТВЕТОВ
РЕШЕНИЕ

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

1
14.12.2008 20:36:44

Я пытаюсь сделать то же самое. Как это бывает, в интернете есть несколько постов с «решениями» для этого.

Самое подробное здесь Это более краткий

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

GSEventSetBacklightLevel();

который требует, чтобы этот заголовок был импортирован

#import <GraphicsServices/GraphicsServices.h>

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

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

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

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

5
21.01.2009 21:12:39
-(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. Помните: поскольку вы используете частный фреймворк, ваше приложение будет отклонено в push-магазине приложений.

0
4.08.2011 08:08:31

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

void GSEventSetBacklightLevel(float level);

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

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

GSEventSetBacklightLevel(-INFINITY);

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

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

0
7.03.2012 13:37:08

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

// в viewWillAppear

float prevBrightnessLevel = [UIScreen mainScreen] .brightness;

[UIScreen mainScreen] .brightness = 1,0;

// в viewWillDisappear

[UIScreen mainScreen] .brightness = prevBrightnessLevel;

0
30.01.2013 16:31:41