首先需要申請WRITE_SETTINGS權(quán)限,在清單文件里面注冊;
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
這個(gè)權(quán)限有些特殊,代碼如下:
需要注意的時(shí),下面的代碼需要判斷系統(tǒng)的版本大于23织咧,才可以
private static final int REQUEST_CODE_WRITE_SETTINGS = 1;
private void requestWriteSettings() {
Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS);
intent.setData(Uri.parse("package:" + getPackageName()));
startActivityForResult(intent, REQUEST_CODE_WRITE_SETTINGS );
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE_WRITE_SETTINGS) {
if (Settings.System.canWrite(this)) {
Log.i(LOGTAG, "onActivityResult write settings granted" );
}
}
}
在用戶允許之后,通過下面的代碼:
// 獲取系統(tǒng)亮度
Settings.System.getInt(getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS);
// 設(shè)置系統(tǒng)亮度
Settings.System.putInt(getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS,systemBrightness);
其中漠秋,需要注意的是笙蒙,返回的亮度值是處于0-255之間的整型數(shù)值。
// 獲取系統(tǒng)亮度模式
Settings.System.getInt(getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS_MODE);
// 設(shè)置系統(tǒng)亮度模式
Settings.System.putInt(getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS_MODE, systemMode);