我需要征求用户的许可。我需要的权限之一是 ACTION_MANAGE_OVERLAY_PERMISSION
,另一个是 Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION
。当请求它时,如下面的代码所示,它会将用户带到“设置”屏幕,以便用户可以从那里勾选权限。
Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
Uri.parse("package:" + getPackageName()));
startActivityForResult(intent, OVERLAY_PERMISSION_REQUEST_CODE);
在某些 Android 手机和 Android 版本上,它会将用户直接带到其他设备上的特定应用程序设置(调用该应用程序的应用程序),它会打开应用程序列表,用户必须从中找到该应用程序并然后勾选权限。在大多数情况下,在低于 10 的 Android 上,它会打开特定的应用程序设置窗口,当 Android 版本为 10 或更高时,它会打开列表。
有没有办法让它始终打开当前打开的应用程序设置?
我尝试添加:
intent.addCategory("android.intent.category.DEFAULT");
intent.setData(Uri.parse("package:" + getApplicationContext().getPackageName()));
但这也没有帮助。
其次,有没有办法在不打开Settings
菜单的情况下请求此权限和其他Settings
权限,而不是在应用程序内的对话框中进行操作?
如果没有,那么有没有办法依次请求多个Settings
权限,因为我的应用程序需要两个Settings
类型权限。
编辑
这就是我所说的特定应用程序设置与列表的含义。
左图列出了所有应用程序,右图则打开了特定的应用程序(如果单击列表中的应用程序,则会发生这种情况)。
现在在某些情况下,它会直接打开右侧图片,但大多数情况下会打开左侧图片。有没有办法始终强制打开正确的图片?
最佳答案
Is there a way to force open the right picture at all times?
没有。
“设置”应用通常由设备制造商进行大幅修改。他们可以为所欲为。这包括忽略 Uri
或彻底删除第三方对此屏幕的访问,后者就是 the documentation is warning against :
In some cases, a matching Activity may not exist, so ensure you safeguard against this.
如果您制作自己的 Android 固件,则可以确保对于运行您的固件的任何设备,此 Intent
操作的行为符合您的要求。
关于java - Android 设置权限没有发挥应有的作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70201972/