我正在尝试实现一个功能与MinimalisticText类似的应用程序,它可以在单击一个小部件时启动特定的活动。我正在制作一个应用程序,我可以选择设备上的任何应用程序,然后从其中选择任何活动,并按下按钮启动它。然而,由于没有在我的清单中声明活动,我遇到了获得ActivityNotFoundException的障碍。
我所有的研究都表明,这是不可能的;然而,像极简文本这样的应用程序能够以某种方式实现这一功能。我在我的应用程序中遗漏了什么,才能启动这些意图:
下面是我如何启动该活动的相关代码片段:
private Intent getLaunchIntent(ActivityInfo ainfo) {
Intent launch = new Intent(ctx, ainfo.getClass());
launch.addCategory(Intent.CATEGORY_LAUNCHER);
if(DBG) { Log.i(TAG, "Got launch intent:" + launch.toString()); }
return launch;
}编辑:解决了!对于任何想知道如何做我所做的事的人,请看这里:
发布于 2012-07-16 15:30:14
具体来说,从清单的角度来看,重要的是要注意,仅仅因为您有活动,并不一定意味着您实际上可以进入特定的活动。这些细节是由MAIN和Launcher Intent的意图筛选器定义的,某些活动将或不具有这些功能。
需要注意的一点是,如果某个活动没有MAIN,则不能通过该包之外的意图直接进入该活动。拒绝对此活动的访问是按预期的方式工作的,因为它是一种安全措施,以防止进入设计方案之外的特定屏幕。
有关详细信息,请参阅:http://developer.android.com/reference/android/content/Intent
此外,作为一个提示,您可以使用PackageManager来解决直接从另一个应用程序启动应用程序的问题(在上述范围内)
https://stackoverflow.com/questions/11507393
复制相似问题