【发布时间】:2022-01-09 02:14:25
【问题描述】:
我需要征得用户的许可。我需要的权限之一是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 上,它会打开特定的应用设置窗口,当它是 10 或更高版本时,它会打开列表。
有没有办法让它始终打开当前打开的应用程序设置?
我尝试添加:
intent.addCategory("android.intent.category.DEFAULT");
intent.setData(Uri.parse("package:" + getApplicationContext().getPackageName()));
但这也无济于事。
其次,有没有一种方法可以在不打开 Settings 菜单的情况下,而不是在应用程序内的对话框中请求此权限和其他 Settings 权限?
如果没有,那么有没有办法一个接一个地请求多个Settings 权限,因为我的应用程序需要两个Settings 类型权限。
编辑
这就是我所说的特定应用程序设置与列表的含义。
左图列出了所有应用程序,右图打开了特定应用程序(如果您单击列表中的应用程序,则会发生这种情况)。
现在在某些情况下,它直接打开右侧图片,但大多数情况下它打开左侧。有没有办法一直强制打开正确的图片?
【问题讨论】:
-
"有没有办法让它始终打开当前打开的应用程序设置?" - “当前打开的应用程序设置”是什么意思? “有没有办法在不打开设置菜单而不是在应用程序内的对话框中进行此操作的情况下请求此权限和其他设置权限?” - 没有。 “我的应用程序需要两个设置类型权限”——也许您应该重新考虑使用它们。例如,系统覆盖目前在某些 Android 设备上不可用,如果将来它们被全部屏蔽,我也不会感到惊讶。
-
@CommonsWare 编辑了问题以指定“有没有办法让它......”。谢谢你的其他答案。
标签: java android android-intent android-permissions android-settings