2012-03-08 67 views
2

我正在开发一个应用程序,我打算打开其他应用程序。唯一的问题是我不知道如何引用第三方应用程序。我打算使用一个意图。你可以参考它只使用包名,还是你需要主要活动意图。有没有找到正确意图的简单方法,然后参考它。从意图打开第三方应用程序

回答

2

我在应用程序上工作,我打算打开其他应用程序。

我认为这意味着您正在创建一个启动器,类似于主屏幕上的启动器。

您可以参考它仅使用包名,还是您需要主要活动意图。

发射器使用ACTION_MAIN/CATEGORY_LAUNCHERIntent

是否有任何简单的方法找到正确的意图,然后引用它。

使用PackageManager找到设备上的所有可能的ACTION_MAIN/CATEGORY_LAUNCHER活动,然后显示这些用户选择。然后你可以构建一个合适的Intent来启动他们的具体选择。

Here is a sample project实现发射器。

要拿出的东西,可以启动列表中,该示例应用程序使用:

PackageManager pm=getPackageManager(); 
Intent main=new Intent(Intent.ACTION_MAIN, null); 

main.addCategory(Intent.CATEGORY_LAUNCHER); 

List<ResolveInfo> launchables=pm.queryIntentActivities(main, 0); 

这里是实际的启动逻辑,对那些“launchables”的一个基于用户点击一个ListActivity

@Override 
    protected void onListItemClick(ListView l, View v, 
           int position, long id) { 
    ResolveInfo launchable=adapter.getItem(position); 
    ActivityInfo activity=launchable.activityInfo; 
    ComponentName name=new ComponentName(activity.applicationInfo.packageName, 
             activity.name); 
    Intent i=new Intent(Intent.ACTION_MAIN); 

    i.addCategory(Intent.CATEGORY_LAUNCHER); 
    i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | 
       Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); 
    i.setComponent(name); 

    startActivity(i);  
    } 
+0

你知道,也使用单选按钮或复选框的例子吗? – Magakahn 2012-03-11 17:41:08

相关问题