3

プログラムでAndroidデバイスの明るさを設定するアプリを作成しようとしています。次のコードを使用して、デバイスの明るさを変更することができました。

BackLightValue = (float)arg1/100;
BackLightSetting.setText(String.valueOf(BackLightValue));

WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
layoutParams.screenBrightness = BackLightValue;
getWindow().setAttributes(layoutParams);

次のコードを使用して、現在のシステム輝度値を取得しました。

try {
    BackLightValue = android.provider.Settings.System.getInt(getContentResolver(), android.provider.Settings.System.SCREEN_BRIGHTNESS);
} catch(Exception e) {}

上記のコードは明るさの現在の設定値を示しているはずですが、アプリを起動するとデフォルト値の50%が表示されます。

何が問題になっていますか?

4

1 に答える 1

8

screenBrightnessを-1に設定すると、明るさが現在のシステムの明るさレベルに設定されるため、これは正しい動作です。

int curBrightnessValue = android.provider.Settings.System.getInt(getContentResolver(), android.provider.Settings.System.SCREEN_BRIGHTNESS,-1);

マニフェストファイルでのアクセス許可。

<uses-permission android:name="android.permission.WRITE_SETTINGS" />
于 2012-08-17T06:27:58.340 に答える