ホームページ >Java >&#&チュートリアル >Android で画面の明るさをプログラムで調整するにはどうすればよいですか?

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

DDD
DDDオリジナル
2024-10-25 06:31:02416ブラウズ

How to Programmatically Adjust Screen Brightness on Android?

システムの明るさをプログラム的に変更する

デバイスの画面の明るさをプログラム的に調整するには、さまざまな方法を利用できます。一般的な方法の 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 サイトの他の関連記事を参照してください。

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