2012-08-06 5 views
2

화면이 켜지는지 여부를 표시 할 수있는 iOS 코드가 필요하므로 내 앱이 (전력이 부족한) 백라이트 동작으로 인해 배터리 전력 소모를 모니터링 할 수 있습니다. 이 코드는 앱을 App Store에 제출하기 위해 공개 API 만 사용해야합니다.iOS에서 프로그램 방식으로 백라이트를 감지하는 방법은 무엇입니까?

처음에 나는이 단순히 지금처럼 UIScreen의 brightness 속성을 확인의 문제 일 수 있습니다 생각 :

-(BOOL)isBackLightOn { 
    float brightness = [UIScreen mainScreen].brightness; 
    return brightness > 0; 
} 

하지만 [UIScreen mainScreen].brightness는 사용자가 선택한 슬라이더의 값을 나타 내기 때문에이 잘못된입니다 설정 -> 밝기 화면에서 이 아닌 화면의 현재 조명 출력.

애플은 기기에서 볼 수있는 에너지 진단 (예 : Logging Energy Usage in an iOS Device 참조)에 포함되어 있기 때문에 명확하게이 값을 결정할 수있는 방법이 있지만 공개 API를 통해이 측정 값이 공개되지 않았을 수 있습니까? 도움이 될 수

답변

0

질문이있다 요와 함께 :

Changing Backlight Level, iPhone

것 같다 당신이 포함하는 경우 :

NSNumber *bl = (NSNumber*) CFPreferencesCopyAppValue(CFSTR("SBBacklightLevel"), CFSTR("com.apple.springboard")); 
float previousBacklightLevel = [bl floatValue]; 
: 이런 식으로 뭔가를 사용하여 다음

#include "GraphicsServices.h" 

을 그리고

백라이트 레벨을 알려줘야합니다. 화면에는 항상 백라이트가 있습니다. I의

+0

죄송합니다. 공개 앱을 통해 앱을 제출해야한다는 점에 대해 명시 적으로 언급 했어야합니다 (앱 스토어에 앱을 제출해야하기 때문에). 이것을 설명하기 위해 질문을 편집 할 것입니다. – boultoa

+0

#이 "#include"GraphicsServices.h "는 무엇입니까? – Hiren

+0

@HiRen GraphicsServices는 iOS SDK의 일부입니다. – Flipper

0

먼저 녀석의 대답 @ 시도했지만 내가이에 R & D가 다음 나에게 많은 도움이 아니에요 그리고 난 그건

NSLog(@"%f", [[[NSMutableDictionary dictionaryWithContentsOfFile:@"/var/mobile/Library/Preferences/com.apple.springboard.plist"] objectForKey:@"SBBacklightLevel2"] floatValue]); 

나에게 부동 소수점 값을 제공 아래 코드 솔루션을 발견했다 , 장치의 현재 밝기 수준

관련 문제