android – WRITE_SETTINGS权限模糊

我正在建立我的应用程序的 Android 6.0 Marshmallow,它需要WRITE_SETTTINGS权限.搜索 from here后,我来到这个叫做:
requestPermissions(new String[]{Manifest.permission.WRITE_SETTINGS},101);

不会显示对话权限.所以,根据CommonsWare解决方案,我们应该检查Settings.System.canWrite()
返回true或false.所以我应该用ACTION_MANAGE_WRITE_SETTINGS作为动作来调用Activity.

但问题是当我调用这个活动时,它显示我的应用程序已被授予权限,但是Settings.System.canWrite()返回false.

在这里缺少一些东西,或者我必须禁用它,然后再启用它.

解决方法

在我的Nexus 6使用Android 6.0.1(MMB29S)这段代码
if (!android.provider.Settings.System.canWrite(this)) {
    Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS);
    intent.setData(Uri.parse("package:dummy"));
    startActivity(intent);
}

仅当允许修改系统设置设置为禁用时才打开设置.例如,首次启动后,新安装(即不重新安装)

编辑(见注释):某些设备可能会在该代码中被检测出来,那些canWrite()总是返回false,无论设置的值如何.

相关文章

这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识...
本篇内容主要讲解“Android如何开发MQTT协议的模型及通信”,...
本文小编为大家详细介绍“Android数据压缩的方法是什么”,内...