2011-07-03 5 views
4

もう一度やり直してください。Android開発:サービスで画面の明るさを変更する

画面の明るさを変更したいと思います。

WindowManager.LayoutParams layoutParams = getWindow().getAttributes(); 
layoutParams.screenBrightness = 0.5F; // set 50% brightness 
getWindow().setAttributes(layoutParams); 

をし、活動に動作しているようですが、私はサービスにいるとき、私はgetWindow()コンパイルエラーことを得る:

私が試してみました。

答えて

4

サービスは、画面の輝度をそのように変更することはできません。サービスにはユーザーインターフェイスがないため、Windowはありません。

SCREEN_BRIGHTNESSシステム設定で、システム全体の輝度を変更することができます。私はそれを試していないので、私はこれが動作するかどうかは分かりません。

それ以外の場合は、アクティビティを変更して明るさを変更してください。 MyActivityを開始したいアクティビティです

Intent myIntent = new Intent(getBaseContext(), MyActivity.class); 
getApplication().startActivity(myIntent); 

+0

私のサービスは10分ごとにチェックしますが、サービスを別のクラスにするにはどうすればいいですか? – carefacerz

+0

@carefacerz:画面の明るさを「10分ごとにチェックする」のには、どのような目的がありますか? – CommonsWare

+0

実際にパワーセーバーのように... – carefacerz

0

あなたのサービスから活動を開始する必要があるでしょう、あなたがする必要があるのはこれです。そのアクティビティの中で、ウィンドウの明るさを変更するコードを置くことができます、それは動作します。

私はここで完全なコードが含まれていました:https://stackoverflow.com/a/9848456/1204377

は、それはまだ不明だなら、私に教えてください。

関連する問題