2009-11-22 3 views
1

iPhone의 앱에서 백라이트 레벨을 설정하는 방법을 모색했습니다. 여기 해결책을 발견 : 나는 내 응용 프로그램에이를 추가 할 때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 

float previousBacklightLevel; 

에 변경

NSNumber *previousBacklightLevel; 

편집을 // 제안 이것은 할당 오류에서 호환되지 않는 유형을 정렬했습니다. MyAppViewController.o에서

- [MyAppViewController applicationWillTerminate] MyAppViewController.o

에서

: - :에서

"_GSEventSetBacklightLevel"참조 : [MyAppViewController viewWillAppear]

은 이제 왼쪽 심볼을 찾을 수 없습니다.

collect2 : ld가 반환했습니다. 1 종료 상태

이 중 하나를 해결하는 방법을 잘 모릅니다!

어떤 도움을 주시면 감사하겠습니다,

// EDIT

분류 모든 문제. 나를 도와 주신 모든 분들께 감사드립니다. 나는 정말로 감사하고 약간의 질문에 대답함으로써 조금 뒤로 줄 수있을 때까지 기다릴 수 없다.

많은 감사,

스투

+0

모든 문제가 정렬되었습니다. 나를 도와 주신 모든 분들께 감사드립니다. 나는 정말로 감사하고 약간의 질문에 대답함으로써 조금 뒤로 줄 수있을 때까지 기다릴 수 없다. – Stumf

+0

가능한 중복 : http://stackoverflow.com/questions/4740261/iphone-brightness-private-api-not-working-properly – Max

+0

개인 API 또는 IOS 4.2에서 백라이트 수준을 변경할 수있는 방법이 있습니까? 누군가가 비공개 API 헤더 등을 친절하게 제공한다면 큰 도움이 될 것입니다. 절전 기능을 사용하고자하는 응용 프로그램은 백라이트 레벨을 변경할 수 있어야합니다. – jcpennypincher

답변

5

GSEventSetBacklightLevel()가 아니라 SDK 헤더의 선언 개인 API이기 때문에 당신이 경고를 얻고있는 이유입니다. 앱 스토어에 앱을 제출하려는 경우 앱을 호출하면 앱이 거부됩니다. 이것이 jailbroken 장치를위한 것이라면, 직접 함수를 선언 할 수 있습니다. 당신이 NSNumber *에 플로트 (스칼라 인)를 할당하려고하기 때문에

void GSEventSetBacklightLevel(float level); 

당신이 오류가 발생하는 이유입니다. previousBacklightLevel을 float로 변경하려고합니다.

+0

흠, 여전히 작동하지 않을 수 있습니다. 좀 더 많은 코드를 제공하여 어떻게 보이는지 볼 수 있습니까? – Stumf

+0

일할 수없는 것은 무엇입니까? 경고를 없애거나 오류를 해결 하시겠습니까? –

+0

여전히 오류를 제거 할 수 없습니다 : 호환되지 않는 유형의 배정 및 이제 오류 : 호환되지 않는 유형의 인수 1에 'GSEventSetBacklightLevel. void GSEventSetBacklightLevel (float 수준)을 추가했습니다. GraphicsServices.h 파일. 그것은 경고를 해결했습니다. 내 실수를 고치는 법을 모르십시오. 내 .h에서 무엇을 선언해야하며 내 .m에서 변경할 것이 있습니까? 플로트로 바꿔야하는 것은 정확히 무엇입니까? Thanks – Stumf

2

당신이 강행 드래그하여 개인 프레임 워크를 추가 및/Developer에서 Xcode 프로젝트에 놓을 수 있습니다/플랫폼/iPhoneOS.platform/개발자/SDK를/iPhoneOS4.2.sdk/시스템/라이브러리/아마 PrivateFrameworks/GraphicsServices.framework 또한 #import "GraphicsServices.h" 헤더를 가져와h 파일

+0

여전히 오류가 발생합니다. 'GraphicsServices.h'를 fin 할 수 없습니다. – Hemang