申請するACTION_MANAGE_WRITE_SETTINGS権限
2396 ワード
android 5.0以上のプラットフォームでは、携帯電話の設定(画面の明るさなど)を変更する必要がある場合は、Settingsを申請する必要があります.ACTION_MANAGE_WRITE_SETTINGS権限は、一般的な方法では申請できません携帯電話の設定を変更(画面の明るさなど)
//
Settings.System.putInt(getActivity().getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS, tmpInt);
tmpInt = Settings.System.getInt(getActivity().getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS, -1);
WindowManager.LayoutParams wl = getActivity().getWindow().getAttributes();
float tmpFloat = (float) tmpInt / 255;
if (tmpFloat > 0 && tmpFloat <= 1) {
wl.screenBrightness = tmpFloat;
}
getActivity().getWindow().setAttributes(wl);
自動調整の設定:
// public static void startAutoBrightness(Context context) { Settings.System.putInt(context.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC); // Settings.System.putInt(context.getContentResolver(), // Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC); Uri uri = Settings.System .getUriFor("screen_brightness"); context.getContentResolver().notifyChange(uri, null); }
// public static void stopAutoBrightness(Context context) { Settings.System.putInt(context.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL); }
以上、Settingsを申請する必要があります.ACTION_MANAGE_WRITE_SETTINGS権限使用Google示例
easypermissions
仍然无法申请
在主界面做下以申请即可
private void CheckPermission() { if (!Settings.System.canWrite(MainUIActivity.this)) { Uri selfPackageUri = Uri.parse("package:" + getPackageName()); Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS, selfPackageUri); startActivity(intent); } }