android:我如何从我的应用程序打开另一个应用程序?

我知道如何在自己的应用程序中打开另一个活动时使用intents和startActivity(),但是如何启动不同的应用程序? 特别:

  • 你如何确定用户是否在他们的设备上安装了所需的应用程序?
  • 你如何启动该应用程序?
  • 如何将parameter passing给该应用程序?
  • 你如何find一个特定的应用程序的所有信息(比如说Adobe Reader或谷歌地图)?

如何查看Intent是否可用:

  1. 尝试调用Intent并处理ActivityNotFoundException如果不可用)

     Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(path, "application/pdf"); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); try { startActivity(intent); } catch (ActivityNotFoundException e) { Toast.makeText(OpenPdf.this, "No Application Available to View PDF", Toast.LENGTH_SHORT).show(); } 

    要么

  2. 查询软件包pipe理器以查看是否提前:

     PackageManager packageManager = getPackageManager(); Intent intent = new Intent(Intent.ACTION_VIEW); intent.setType("application/pdf"); List list = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY); if (list.size() > 0) { intent.setDataAndType(path, "application/pdf"); startActivity(intent); } 

如何将parameter passing给应用程序或知道其function:

  1. Google应用程序的可用意向列表
  2. 第三方意向清单@ OpenIntents

你正在寻找的是intentintentfilter

你想知道的一切都在Android开发者指南中详细介绍。

http://developer.android.com/guide/topics/intents/intents-filters.html