Обеспечивает ли SDK какой-либо способ изменить яркость подсветки или временно отключить ее?Изменение яркости подсветки на iPhone программно
ответ
№ Это не доступно в SDK. Если это то, что вы считаете полезным, я предлагаю вам file an enhancement request.
Я пытаюсь сделать то же самое. Как бы там ни было, в интернетах есть несколько сообщений с «решениями» для этого.
Наиболее подробна here Это один более succinct
Проблема в том, что я попробовал это, и все они полагаются на вызов этой функции
GSEventSetBacklightLevel();
, который требует этот заголовок для импорта
#import <GraphicsServices/GraphicsServices.h>
И что импорт не удалось в SDK сообщать, что файл заголовка не может быть д.
Я искал какое-то решение, но не нашел его. Есть некоторые разговоры о «создании инструментальной цепочки» (для лучшего описания, которое я нашел, см. here), но это похоже на обход всего 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 .. помнить: так как вы используете частный рамки вам приложение будет отклонять в магазине приложений толчке
В моем SDK (5.0.1), кажется, что «GraphicsServices.h» больше нет, но вы можете объявить его самостоятельно, как это:
void GSEventSetBacklightLevel(float level);
Обратите внимание, что компоновщик будет жаловаться, если не включать в рамки GraphicsServices.framework в вашем проекте.
О ваш вопрос о Отключение подсветки, я узнал, что вы можете сделать это, передав очень большое отрицательное число GSEventSetBacklightLevel, как это:
GSEventSetBacklightLevel(-INFINITY);
В моих тестах это будет полностью затемнить экран.
Помните, что это может вызвать ожог в ЖК-пикселах, если вы показываете статическую графику, даже если подсветка выключена.И этот вызов вызовет отклонение, если будет отправлено в магазин приложений.
попробуйте этот код. я надеюсь, что это помогает ...
// в viewWillAppear
поплавок prevBrightnessLevel = [UIScreen В начало] .Brightness;
[UIScreen mainScreen] .brightness = 1.0;
// в viewWillDisappear
[UIScreen В начало] .Brightness = prevBrightnessLevel;
Взгляните на обсуждение здесь: http://www.iphonedevsdk.com/forum/iphone-sdk-development/6400-adjusting-screen-brightness.html. – 2008-12-14 20:45:18