システムの明るさをプログラム的に変更する
デバイスの画面の明るさをプログラム的に調整するには、さまざまな方法を利用できます。一般的な方法の 1 つは、画面の明るさの属性を処理することです。
<code class="java">WindowManager.LayoutParams lp = window.getAttributes(); lp.screenBrightness = (float)brightness; window.setAttributes(lp);</code>
ただし、潜在的な制限や最大値の設定が間違っているため、この手法は常に機能するとは限りません。
別のアプローチは、次の方法を利用することです。システム設定と ContentResolver:
<code class="java">private ContentResolver cResolver; private Window window; private int brightness; onCreate() { cResolver = getContentResolver(); window = getWindow(); try { // Handle auto brightness mode Settings.System.putInt(cResolver, Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL); // Retrieve current brightness brightness = Settings.System.getInt(cResolver, Settings.System.SCREEN_BRIGHTNESS); } catch (SettingNotFoundException e) { Log.e("Error", "Cannot access system brightness"); e.printStackTrace(); } }</code>
その後、明るさを調整できます:
<code class="java">// Update system brightness Settings.System.putInt(cResolver, Settings.System.SCREEN_BRIGHTNESS, brightness); // Update window brightness attributes LayoutParams layoutpars = window.getAttributes(); layoutpars.screenBrightness = brightness / 255f; window.setAttributes(layoutpars);</code>
必要な権限をマニフェストに含めることを忘れないでください:
<code class="xml"><uses-permission android:name="android.permission.WRITE_SETTINGS" /></code>
API レベル 23 以降の場合は、ドキュメントの説明に従って、設定アクティビティを通じて許可をリクエストする必要があります。
以上がAndroid で画面の明るさをプログラムで調整するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。