【问题标题】:Programmatically launch user selected application以编程方式启动用户选择的应用程序
【发布时间】:2014-05-24 07:06:36
【问题描述】:

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

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

如果您想了解我的意思的几个示例,请查看 9 Cards Launcher 或 Smart Launcher,或任何 Windows 7 Phone Launcher。他们会通过一个小弹出窗口提示您,让您选择要运行的应用程序及其设置。

我怎样才能做到这一点?请我到处搜索,但没有任何意义。没有这方面的教程,我还反编译了各种启动器,看看它是如何工作的,但我不知道从哪里开始。

如果你能帮忙就太好了。

【问题讨论】:

    标签: java android eclipse class launcher


    【解决方案1】:

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

    然后你会从用户选择的应用程序中获取应用程序包信息。

    最终启动意图。

    以下是您可以尝试的:

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

    我也建议看看FreeTaskManager

    【讨论】:

      猜你喜欢
      • 2016-06-26
      • 2013-02-05
      • 1970-01-01
      • 1970-01-01
      • 2012-04-28
      • 2011-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多