2

我正在尝试实现一个具有与 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;
     }

编辑:解决了!对于任何想知道如何做我正在做的事情的人,请看这里:

从您自己的(意图)打开另一个应用程序

4

1 回答 1

0

特别是从清单的角度来看,重要的是要注意,仅仅因为您拥有 Activity 并不一定意味着您实际上可以进入该特定 Activity。这些细节由 和 的 Intent Filter 定义MAINLauncher Intent一些活动将或不具有。

需要注意的一点是,如果一个活动没有MAIN,您不能通过该包之外的意图直接进入该活动。被拒绝访问此活动正在按预期工作,因为它是一种安全措施,可防止进入设计方案之外的特定屏幕。

详情参考:http: //developer.android.com/reference/android/content/Intent

同样作为提示,您可以使用 PackageManager 来解决直接从另一个应用程序启动应用程序的问题(在上述范围内)

于 2012-07-16T15:30:14.850 回答