android:我如何从我的应用程序打开另一个应用程序?
我知道如何在自己的应用程序中打开另一个活动时使用intents和startActivity(),但是如何启动不同的应用程序? 特别:
- 你如何确定用户是否在他们的设备上安装了所需的应用程序?
- 你如何启动该应用程序?
- 如何将parameter passing给该应用程序?
- 你如何find一个特定的应用程序的所有信息(比如说Adobe Reader或谷歌地图)?
如何查看Intent是否可用:
-
尝试调用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(); }
要么
-
查询软件包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:
- Google应用程序的可用意向列表
- 第三方意向清单@ OpenIntents
你正在寻找的是intent和intentfilter 。
你想知道的一切都在Android开发者指南中详细介绍。
http://developer.android.com/guide/topics/intents/intents-filters.html