Изменение уровня подсветки, iPhone
-
21-09-2019 - |
Вопрос
Я искал способ установить уровень подсветки в приложении на iPhone. Я нашел здесь решение:
http://www.iphonedevsdk.com/forum/29097-post3.html
Проблема, которую у меня есть, в том, что когда я добавляю это в свое приложение, я получаю ошибку и предупреждение. Мой код заключается в следующем:
#include "GraphicsServices.h"
- (void) viewWillAppear:(BOOL)animated
{
NSNumber *bl = (NSNumber*) CFPreferencesCopyAppValue(CFSTR("SBBacklightLevel" ), CFSTR("com.apple.springboard"));
previousBacklightLevel = [bl floatValue];
//Error here : incompatible types in assignment
[bl release];
GSEventSetBacklightLevel(0.5f);
// Warning here : implicit declaration of function 'GSEventSetBacklightLevel'
}
//...The rest of my app
- (void)applicationWillTerminate:(UIApplication *)TheNameOfMyAppIsHere
{
GSEventSetBacklightLevel(previousBacklightLevel);
}
Я не уверен в том, что вызывает это. Я также действительно не знаю, что должно быть в моем файле .h здесь, но у меня есть:
NSNumber *previousBacklightLevel;
РЕДАКТИРОВАТЬ // Изменено
NSNumber *previousBacklightLevel
к
float previousBacklightLevel;
как предполагалось и это отсортировало несовместимые типы в ошибке назначения.
Теперь осталось с:
«_Gseventsetbacklightlevel», ссылается из:
-
-[MyAppViewController ApplicationWillterminate] в myAppViewController.o
Символ (ы) не найден
COLLECT2: LD вернул 1 статус выхода
Не уверен, как исправить это!
Любая помощь будет оценена,
// РЕДАКТИРОВАТЬ
Все проблемы отсортированы. Спасибо всем, кто мне помог. Я действительно ценю это и не могу дождаться, пока я смогу отдать немного обратно, отвечая на некоторые вопросы.
Большое спасибо,
Стю
Решение
Причина, по которой вы получаете предупреждение, заключается в GSEventSetBacklightLevel()
является частным API, не объявленным ни в одном из заголовков SDK. Если вы планируете отправить это в App Store, ваше приложение будет отклонено, если вы его позвоните. Если это предназначено для джейлбрейского устройства, вы можете просто объявить функцию самостоятельно.
void GSEventSetBacklightLevel(float level);
Причина, по которой вы получаете ошибку, заключается в том, что вы пытаетесь назначить поплавок (который является скалярным) на NSNumber *
. Анкет Вы, вероятно, хотите сменить Partbacklightlevel, чтобы стать поплавком.
Другие советы
Вы можете добавить частную структуру, перетаскиваясь в проект Xcode от /Developer/Platforms/iPhoneOS.Platform/Developer/SDKS/iPhoneOS4.2.sdk/System/Library/PrivateFrameWorks/GraphicsServices.FrameWork а также импортируйте #import "GraphicsServices.h"
Заголовок в вашем файле .h