美文网首页
android 修改系统权限

android 修改系统权限

作者: CreScert | 来源:发表于2019-07-22 15:17 被阅读0次

在有时候,需要用到WRITE_SETTINGS的权限,但是这个权限,在高版本手机里只在清单文件里声明也没用,动态申请也没用。
就需要打开系统权限列表,

 if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
     if (!Settings.System.canWrite(MainActivity.this)) {
         Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS,
                                Uri.parse("package:" + getPackageName()));
         intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
         startActivityForResult(intent, 200);
      } else {
      // 如果有权限做些什么
      }
                        
  }

这样就会打开 修改系统权限的页面,如下图:


image.png

当然这个权限必须在清单文件声明,当你声明为:

 <uses-permission android:name="android.permission.WRITE_SETTINGS"/>

清单文件会有红色波浪线,提示:Permission is only granted to system apps


image.png

当你改成

 <permission android:name="android.permission.WRITE_SETTINGS"/>

你会发现,允许修改系统权限 不能修改了,只有写成

 <uses-permission android:name="android.permission.WRITE_SETTINGS"/>

才可以修改。

总之,简而言之,就是清单文件里声明权限:

 <uses-permission android:name="android.permission.WRITE_SETTINGS"/>

再讲最上面的代码写上就能跳转并开启权限了。如果出现不能修改权限,请检查你的清单文件的权限是否标明,以及是否写成了uses-permission。

以后发现原因了,再追加。

\color{#ea4335}{对了,看别人说的这个权限有一个坑,但我没遇见。如下:}

在这里,Write_setting有个坑,申请了write_setting权限后,也出现闪退的情况,异常为:Java.lang.IllegalArgumentException: You cannot keep your settings in the secure settings.

在android 6.0及以后,WRITE_SETTINGS权限的保护等级已经由原来的dangerous升级为signature,这意味着我们的APP需要用系统签名或者成为系统预装软件才能够申请此权限,并且还需要提示用户跳转到修改系统的设置界面去授予此权限

也就是说,要想申请该权限,apk必须要打包,签名打包。要签名打包,最喜欢的debug模式是不能申请该权限

相关文章

  • Android系统设置屏幕不旋转

    想要修改系统设置,需要apk有系统权限,有系统权限manifest文件要添加android:sharedUserI...

  • Android动态权限

    引言 在Android系统 6.0(API为23) 以后,系统开始对Android权限做了管理。有部分权限被修改成...

  • Android安全—Boot与Root

    Android安全—权限模型Android安全—深入理解各层级 需要最高权限的理由很多,更改默认系统行为,修改自定...

  • android 修改系统权限

    在有时候,需要用到WRITE_SETTINGS的权限,但是这个权限,在高版本手机里只在清单文件里声明也没用,动态申...

  • Android判断应用是否拥有某种权限

    Android判断应用是否拥有某种权限 最近发现很多很多分原生Android系统会修改某些权限,甚至还有可能在安装...

  • Android权限问题整理

    Android权限系统非常庞大,我们在Android系统中做任何操作都需要首先获取Android系统权限,本文记录...

  • Android 修改系统设置权限申请

  • Android 运行时权限详解

    Android系统权限 Android 是一个权限分隔的操作系统,其中每个应用都有其独特的系统标识(Linux 用...

  • Android6.0 动态权限 笔录

    导航: Android6.0 动态权限申请程序 普通权限与动态权限 完整代码 在Android6.0中,系统权限被...

  • 运行时权限

    Android 6.0 (API 23) 开始系统权限分为:正常权限和危险权限在所有的 Android 版本中,应...

网友评论

      本文标题:android 修改系统权限

      本文链接:https://www.haomeiwen.com/subject/xtlwlctx.html