我正在尝试实现一个具有类似功能的应用程序,以便MinimalisticText能够在单击窗口小部件时启动特定活动。我正在制作一个应用程序,我可以在设备上选择任何应用程序,然后从中选择任何活动,然后按下按钮启动它。但是,由于没有在我的清单中声明所述活动,我遇到了获取ActivityNotFoundException的障碍。
我的所有研究都表明这是不可能的;然而,像Minimalistic Text这样的应用程序能够以某种方式实现该功能。我的申请中缺少什么才能启动意图:
以下是我发布活动的相关代码段:
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;
}
编辑:解决了!对于任何想要如何做我正在做的事的人,请看这里:
答案 0 :(得分:0)
特别是从清单的角度来看,重要的是要注意,仅仅因为你有活动 NOT 必然意味着你实际上可以进入该特定活动。这些细节由MAIN
和Launcher Intent
的意图过滤器定义,某些活动将会或不会有。
有一点需要注意的是,如果某个活动没有MAIN
,则无法通过该包之外的意图直接转到该活动。被拒绝访问此活动按预期工作,因为它是一种安全措施,可防止进入设计方案之外的特定屏幕。
有关详细信息,请参阅:http://developer.android.com/reference/android/content/Intent
同样作为 HINT ,您可以使用PackageManager来解决直接从另一个应用程序启动应用程序的问题(在上面提到的范围内)