ホームページ  >  記事  >  Java  >  Android でシステムの明るさをプログラムで調整するにはどうすればよいですか?

Android でシステムの明るさをプログラムで調整するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-25 02:56:29370ブラウズ

How to Programmatically Adjust System Brightness in Android?

プログラムによるシステムの明るさの調整

ウィンドウ レイアウト パラメーターの screenBrightness 属性を設定しているにもかかわらず、明るさの変化は観察されません。この問題により、システムの明るさをプログラムで変更するための代替方法の検討が求められます。

解決策:

システムの明るさを効果的に調整するには、次の手順を検討してください:

  1. アクティビティ クラスで次のインスタンス変数を宣言します。

    private int brightness;
    private ContentResolver cResolver;
    private Window window;
  2. onCreate メソッド内で、コンテンツ リゾルバー、ウィンドウ参照、および現在のシステムの明るさを取得します。 :

    cResolver = getContentResolver();
    window = getWindow();
    
    try {
        Settings.System.putInt(cResolver, Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
        brightness = Settings.System.getInt(cResolver, Settings.System.SCREEN_BRIGHTNESS);
    } catch (SettingNotFoundException e) {
        // Handle the error gracefully
    }
  3. 明るさの変化を監視するメカニズムを実装します (例: SeekBar リスナー)。
  4. 明るさを調整するときは、更新された値を使用してシステムの明るさを設定します。明るさ変数を変更し、ウィンドウ属性を更新します:

    Settings.System.putInt(cResolver, Settings.System.SCREEN_BRIGHTNESS, brightness);
    
    LayoutParams layoutpars = window.getAttributes();
    layoutpars.screenBrightness = brightness / 255f;
    window.setAttributes(layoutpars);
  5. AndroidManifest.xml ファイルで必要な権限を宣言することを忘れないでください:

    <code class="xml"><uses-permission android:name="android.permission.WRITE_SETTINGS" /></code>

注:

API レベル 23 (Android 6.0 Marshmallow) 以上の場合、設定アクティビティまたはアクティビティ経由で WRITE_SETTINGS 権限をリクエストする必要があります。互換性ライブラリ (ActivityCompat)。

以上がAndroid でシステムの明るさをプログラムで調整するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。