画面の明るさを変えるスライダーを作ろうとしています。上記のコードでなんとかできました
明るさコード:
BackLightControl.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
// TODO Auto-generated method stub
float BackLightValue = (float)progress/100.0f;
int brightnessMode;
try {
brightnessMode = Settings.System.getInt(getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS_MODE);
if (brightnessMode == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) {
Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE,
Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
}
BackLightSetting.setText(String.valueOf(BackLightValue));
WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
layoutParams.screenBrightness = BackLightValue;
getWindow().setAttributes(layoutParams);
} catch (SettingNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
});
}
}
問題は、それが機能していて、スライダーをスライドさせている間に明るさが変化するのを見ることができますが、アクティビティが終了するとすぐに以前の明るさのレベルに戻ることです。これは無意味です. ただし、スライダーを使用すると無効になった自動バックライト設定は残ります。私が間違っていることは何ですか?また、画面がオフになるため、スライダーが0にならないようにするにはどうすればよいですか。強制的にアプリを閉じるだけで、変更をリセットできます。