在面对6.0动态权限申请上,遇到很多坑,其中最坑的是,如下:
java.lang.SecurityException: xxxxxxxxxxxxxxx was not granted this permission: android.permission.WRITE_SETTINGS.
可是我已经requestpermission申请了啊,为什么还是申请不到?
这个大锅就要归于不同手机厂商乱改系统,给我们这些开发人员增添了不少压力,在这里我要吐槽谷歌的Nexus6P,我就是被这家伙坑的好惨,后来经过逐步排除,终于解决了问题,为了让大家少走弯路,这边直接给出解决方法:
if (!Settings.System.canWrite(this)) {
ToastUtil.showShort(getContext(), "请在该设置页面勾选,才可以修改系统设置");
Uri selfPackageUri = Uri.parse("package:"
+ this.getPackageName());
Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS,
selfPackageUri);
startActivity(intent);
}