申请Settings.ACTION_MANAGE_WRITE_SETTINGS权限

时间:2025-01-31 08:38:08


在android 5.0及以上平台,若需对手机设置进行修改(如 屏幕亮度),则需申请Settings.ACTION_MANAGE_WRITE_SETTINGS权限,而通过一般方式无法申请

手机设置进行修改(如 屏幕亮度)


  // 根据当前进度改变亮度
                (getActivity().getContentResolver(),
                        .SCREEN_BRIGHTNESS, tmpInt);
                tmpInt = (getActivity().getContentResolver(),
                        .SCREEN_BRIGHTNESS, -1);
                 wl = getActivity().getWindow().getAttributes();

                float tmpFloat = (float) tmpInt / 255;
                if (tmpFloat > 0 && tmpFloat <= 1) {
                     = tmpFloat;
                }
                getActivity().getWindow().setAttributes(wl);

设置自动调节:

 // 开启亮度自动调节

    public static void startAutoBrightness(Context context) {

        ((),

                .SCREEN_BRIGHTNESS_MODE,

                .SCREEN_BRIGHTNESS_MODE_AUTOMATIC);


//              ((),
//                .SCREEN_BRIGHTNESS_MODE, .SCREEN_BRIGHTNESS_MODE_AUTOMATIC);

        Uri uri = 
                .getUriFor("screen_brightness");
        ().notifyChange(uri, null);
    }
   
 // 停止自动亮度调节

    public static void stopAutoBrightness(Context context) {

        ((),

                .SCREEN_BRIGHTNESS_MODE,

                .SCREEN_BRIGHTNESS_MODE_MANUAL);



    }

以上都需要申请Settings.ACTION_MANAGE_WRITE_SETTINGS权限
 
 

使用Google示例

easypermissions


仍然无法申请

在主界面做下以申请即可

 private void CheckPermission() {
        if (!()) {


            Uri selfPackageUri = ("package:"
                    + getPackageName());
            Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS,
                    selfPackageUri);
            startActivity(intent);
        }
    }