プログラムによるシステムの明るさの調整
ウィンドウ レイアウト パラメーターの screenBrightness 属性を設定しているにもかかわらず、明るさの変化は観察されません。この問題により、システムの明るさをプログラムで変更するための代替方法の検討が求められます。
解決策:
システムの明るさを効果的に調整するには、次の手順を検討してください:
アクティビティ クラスで次のインスタンス変数を宣言します。
private int brightness; private ContentResolver cResolver; private Window window;
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 }
明るさを調整するときは、更新された値を使用してシステムの明るさを設定します。明るさ変数を変更し、ウィンドウ属性を更新します:
Settings.System.putInt(cResolver, Settings.System.SCREEN_BRIGHTNESS, brightness); LayoutParams layoutpars = window.getAttributes(); layoutpars.screenBrightness = brightness / 255f; window.setAttributes(layoutpars);
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 サイトの他の関連記事を参照してください。