打开特定 Android 应用程序的 ACTION_USAGE_ACCESS_SETTINGS 屏幕

问题描述 投票:0回答:2

我想要

ACTION_USAGE_ACCESS_SETTINGS
作为我的应用程序储物柜Android应用程序,无需两步导航。我的意思是我可以在后台获取它,例如媒体权限或直接访问我的应用程序
ACTION_USAGE_ACCESS_SETTINGS
屏幕吗?

android security permissions
2个回答
2
投票

在深入研究 Android 设置应用程序的源代码后,我认为这是不可能的。您发布的屏幕截图是 UsageAccessDetails 片段,创建它的唯一位置是 ManageApplication 类右侧 here 中的第 610 行,而该方法又位于仅由 ManageApplication 类的 onItemClick 方法调用的方法中就在这里。因此,我认为只有当用户实际单击“设置”应用程序的“UsageAccessSettingsActivity”中的应用程序时,才会创建“UsageAccessDetails 片段”。


0
投票

刚刚想通了!事实证明非常简单,只需要一些挖掘:

Intent intent = new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS);
intent.setData(Uri.fromParts("package", getPackageName(), null););
startActivityForResult(intent, 0 /* Or change to a different request code */);

解释:根据 CommonsWare 的这篇文章,Android 上有第二个 Activity 可以响应

Settings.ACTION_USAGE_ACCESS_SETTINGS
,它可以接受额外的参数:
<data android:scheme="package"/>
,它将打开包指定的应用程序;我们可以通过 Uri 添加它,如上面的代码示例所示。

© www.soinside.com 2019 - 2024. All rights reserved.