Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从intent打开第三方应用程序_Android_Android Intent - Fatal编程技术网

Android 从intent打开第三方应用程序

Android 从intent打开第三方应用程序,android,android-intent,Android,Android Intent,我正在开发一个应用程序,但我将打开其他应用程序。唯一的问题是我不知道如何引用第三方应用程序。我计划使用一个意图。您可以仅使用packagename来引用它,还是需要主要活动意图。有什么简单的方法可以找到正确的意图,然后参考它 我正在开发一个应用程序,但我将打开其他应用程序 我将此解释为您正在创建一个启动器,类似于主屏幕上的启动器 您可以仅使用packagename来引用它,还是需要主要活动意图 启动器使用操作\u主启动器/类别\u启动器意图 有什么简单的方法可以找到正确的意图,然后参考它 使用P

我正在开发一个应用程序,但我将打开其他应用程序。唯一的问题是我不知道如何引用第三方应用程序。我计划使用一个意图。您可以仅使用packagename来引用它,还是需要主要活动意图。有什么简单的方法可以找到正确的意图,然后参考它

我正在开发一个应用程序,但我将打开其他应用程序

我将此解释为您正在创建一个启动器,类似于主屏幕上的启动器

您可以仅使用packagename来引用它,还是需要主要活动意图

启动器使用
操作\u主启动器
/
类别\u启动器
意图

有什么简单的方法可以找到正确的意图,然后参考它

使用
PackageManager
查找设备上所有可能的
ACTION\u MAIN
/
CATEGORY\u LAUNCHER
活动,然后向用户显示这些活动以供选择。然后,您可以构建一个合适的
意图
,用于启动他们的特定选择

它实现了一个启动器

为了列出可以发布的内容列表,该示例应用程序使用:

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

main.addCategory(Intent.CATEGORY_LAUNCHER);

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

你知道一个同样使用单选按钮或复选框的例子吗?
  @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);    
  }