2008-12-14 3 views

ответ

5

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

Наиболее подробна here Это один более succinct

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

GSEventSetBacklightLevel(); 

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

#import <GraphicsServices/GraphicsServices.h> 

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

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

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

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

0
-(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 .. помнить: так как вы используете частный рамки вам приложение будет отклонять в магазине приложений толчке

0

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

void GSEventSetBacklightLevel(float level); 

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

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

GSEventSetBacklightLevel(-INFINITY); 

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

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

0

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

// в viewWillAppear

поплавок prevBrightnessLevel = [UIScreen В начало] .Brightness;

[UIScreen mainScreen] .brightness = 1.0;

// в viewWillDisappear

[UIScreen В начало] .Brightness = prevBrightnessLevel;