我想要
ACTION_USAGE_ACCESS_SETTINGS
作为我的应用程序储物柜Android应用程序,无需两步导航。我的意思是我可以在后台获取它,例如媒体权限或直接访问我的应用程序ACTION_USAGE_ACCESS_SETTINGS
屏幕吗?
在深入研究 Android 设置应用程序的源代码后,我认为这是不可能的。您发布的屏幕截图是 UsageAccessDetails 片段,创建它的唯一位置是 ManageApplication 类右侧 here 中的第 610 行,而该方法又位于仅由 ManageApplication 类的 onItemClick 方法调用的方法中就在这里。因此,我认为只有当用户实际单击“设置”应用程序的“UsageAccessSettingsActivity”中的应用程序时,才会创建“UsageAccessDetails 片段”。
刚刚想通了!事实证明非常简单,只需要一些挖掘:
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 添加它,如上面的代码示例所示。