2014-05-24 181 views
0

所以,如果你没有注意到。许多新的启动器可让您选择要启动的应用程序作为特定类别的默认应用程序。以编程方式启动用户选择的应用程序

我的启动器由显示卡片的不同片段组成,这些卡片具有一个按钮,该按钮有一个功能,当用户触摸按钮时,会提示他们一个窗口,他们可以选择要为该特定视图运行哪个应用程序。为了让用户更容易,他们选择的意图或应用程序应该被保存,所以如果他们再次选择按钮,他们不必再次选择应用程序。

如果您想了解我的意思,请查看9张桌面启动器或智能启动器或任何Windows 7手机启动器。他们会提示您一个小弹出窗口,让您选择要运行的应用程序及其集合。

我该如何做到这一点?请我到处搜索,但没有意义。这里没有教程,我也反编译了各种发射器,看看它是如何工作的,但我不知道从哪里开始。

如果你能帮忙,那会很棒。

回答

0

您首先需要获取安装的应用程序。

然后,您将从用户选择的应用程序中获取应用程序包信息。

最后启动意图。

这里就是你可以尝试:

  1. action=MAINcategory=LAUNCHER
  2. 创建一个意图使用Get从当前上下文的PackageManagercontext.getPackageManager
  3. packageManager.queryIntentActivity(<intent>, 0)其中意图有category=LAUNCHERaction=MAINpackageManager.resolveActivity(intent, 0)以获得主要/发射器的第一个活动
  4. 获取你感兴趣的
  5. ActivityInfoActivityInfo,得到packageNamename
  6. 最后,创建另一个意图与category=LAUNCHERaction=MAINcomponentName = new ComponentName(packageName, name)setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
  7. 最后,context.startActivity(newIntent)

我也建议看看FreeTaskManager

相关问题