質問

私は最近、私のアプリに取り組んでバックライトの明るさを変更するようでした。私は、アプリを終了するには、それの元の設定にバックライトレベルを復元したかったです。ここでは、コードは次のとおりです。

#include "GraphicsServices.h"

- (void) viewWillAppear:(BOOL)animated
{

NSNumber* bl = (NSNumber*) CFPreferencesCopyAppValue(CFSTR("SBBacklightLevel"),     CFSTR("com.apple.springboard")); // To retrieve backlight settings
    prevBacklightLevel = [bl floatValue];

GSEventSetBacklightLevel(0.5f); 

}

// Other code here...    

- (void)applicationWillTerminate
{
    GSEventSetBacklightLevel(prevBacklightLevel); // To restore to original level
}

バックライトはアプリでレベルセットでアプリをロードする上で正しく変更し、まだ時にユーザー出口、バックライト遺体...どのように不便!

缶、これは私が明らかに間違って何をやっている、期待通りに動作しない理由として、任意のヘルプを私に?

私は、この問題に関するウェブ上の多くの情報を見つけることができませんでした。

ViewController.h必要です。

#import "GraphicsServices.h"

も。

この問題での編集//缶誰も助けます:

アプリが閉じられたバックライトレベルは変更しませんが、常に0に、何それはアプリが実行された前にあったかは重要であるとき。おそらくBLが何らかの理由で常に0です?

多くのおかげで、

のStu

役に立ちましたか?

解決

答えを発見しました。それは本当に基本的なエラー...愚かな間違いでした。私が持っていた。

- (void)applicationWillTerminate

ViewController.mではなく、AppDelegate.mで

これは今完璧に動作します。

私は、これは同様の問題であり、誰アウトを役に立てば幸い、

のStu

他のヒント

アプリ内で明るさをcontrollするには、

は面白いアイデアです。しかし、この文字列を使用すると、拒絶反応の原因となります。 (リンクを参照してください。)

まあ、私は、ユーザーが終了した後にレベルを復元する方法がわかりません。したがって、私はあなたに2つのAPIを紹介しましょう。彼らは、Mac OS X上の方法です。

CFPreferencesSetAppValue()CFPreferencesAppSynchronize()

あなたが問題を解決した場合は、私を含め、他の開発者のための正しいコードを書き留めてください。 ; - )

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top