バックライトの明るさを変更したり、一時的にオフにしたりする方法はありますか?
5 に答える
私は同じことをしようとしています。たまたま、これに対する「解決策」を含む多くの投稿がインターネットに出回っています。
問題は、私がこれらを試したことであり、それらはすべてこの関数の呼び出しに依存していることです
GSEventSetBacklightLevel();
このヘッダーをインポートする必要があります
#import <GraphicsServices/GraphicsServices.h>
そして、そのインポートは、ヘッダー ファイルが見つからないことを報告する SDK で失敗します。
いくつかの解決策を探しましたが、見つかりませんでした。「ツールチェーンの構築」についての話があります (私が見つけた最良の説明については、こちらを参照してください) が、SDK を完全にバイパスする必要があるようです。かなり劇的。
概要: 可能ですが、標準の iPhone SDK ではできません。それを可能にするSDKのアップデートが間もなく来ると思います。
他の解決策を見つけたら教えてください。
いいえ。これは SDK では利用できません。役に立つと思われるものがある場合は、機能強化リクエストを提出することをお勧めします。
このコードを試してください。それが役立つことを願っています...
//ビュー内でWillAppear
float prevBrightnessLevel = [UIScreen mainScreen].brightness;
[UIScreen mainScreen].brightness = 1.0;
//ビュー内でWillDisappear
[UIScreen mainScreen].brightness = prevBrightnessLevel;
-(void)changeLight{
GSEventSetBacklightLevel(float number);//number between 0.0 - 1.0
}
を使用して上記のメソッドを呼び出します
[self performSelector:@selector(changeLight) withObject:nil afterDelay:0.0];
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/System/Library/PrivateFrameworks/GraphicsServices.framework から xcode プロジェクトにドラッグ アンド ドロップするだけで、プライベート フレームワークを追加できます。
また、.h ファイルに #import "GraphicsServices.h" ヘッダーを追加します。覚えておいてください: プライベート フレームワークを使用しているため、アプリケーションはアプリ ストア プッシュで拒否されます。
私のSDK(5.0.1)では、「GraphicsServices.h」がなくなったようですが、次のように自分で宣言できます:
void GSEventSetBacklightLevel(float level);
プロジェクトにフレームワーク GraphicsServices.framework を含めない限り、リンカは文句を言うことに注意してください。
バックライトをオフにすることに関するあなたの質問については、次のように GSEventSetBacklightLevel に非常に大きな負の数を渡すことでそれを行うことができることがわかりました。
GSEventSetBacklightLevel(-INFINITY);
私のテストでは、これにより画面が完全に黒くなります。
バックライトがオフの場合でも、静的なグラフィックを表示すると、LCD ピクセルに焼き付きが生じる可能性があることに注意してください。そして、アプリストアに送信された場合、この呼び出しは拒否されます。