2

画面が点灯しているかどうかを表示できる iOS コードが必要です。これにより、アプリが (電力を消費する) バックライト アクティビティによるバッテリー電力の消耗を監視できるようになります。最終的にアプリを App Store に提出するつもりであるため、このコードではパブリック API のみを使用する必要があります。

最初は、これは次のように UIScreenの輝度プロパティを確認するだけの問題であると考えていました。

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

画面の現在の光出力ではなく、[設定] -> [明るさ] 画面でユーザーが選択したスライダーの値を表すため、これは正しくありません。[UIScreen mainScreen].brightness

Apple には、Instruments で表示できるエネルギー診断に含まれているため、明らかにこの値を決定する方法があります (たとえば、「 iOS デバイスでのエネルギー使用量のログ」を参照)。

4

2 に答える 2

0

最初に@Flipperの答えを試しましたが、あまり役に立ちませんでした。その後、これについてR&Dを行い、以下のコードで解決策を見つけました。

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

フロート値、デバイスの現在の輝度レベルを教えてくれます

于 2013-01-04T07:14:45.280 に答える
0

これに役立つかもしれない質問は次のとおりです。

バックライトレベルの変更、iPhone

これを含めると次のようになります。

#include "GraphicsServices.h"

そして、次のようなものを使用します:

NSNumber *bl = (NSNumber*) CFPreferencesCopyAppValue(CFSTR("SBBacklightLevel" ), CFSTR("com.apple.springboard"));
float previousBacklightLevel = [bl floatValue];

バックライトレベルを与える必要があります。画面には常に何らかの形のバックライトがあることを覚えておいてください。

于 2012-08-06T18:19:51.707 に答える