android:我如何从我的应用程序中打开另一个应用程序?
Posted
技术标签:
【中文标题】android:我如何从我的应用程序中打开另一个应用程序?【英文标题】:android: how do i open another app from my app? 【发布时间】:2011-02-24 18:44:19 【问题描述】:我了解在我自己的应用中打开另一个 Activity 时如何使用 Intent 和 startActivity(),但是如何启动另一个应用?具体来说:
您如何确定用户的设备上是否安装了所需的应用程序? 如何启动该应用程序? 如何将参数传递给该应用程序? 如何找到特定应用程序(例如 Adobe 阅读器或谷歌地图)的所有这些信息?【问题讨论】:
【参考方案1】:这对我有用:
Intent launchIntent = getPackageManager().getLaunchIntentForPackage("com.example.testing_app");
if (launchIntent != null)
startActivity(launchIntent);
else
Toast.makeText(MainActivity.this, "testing_app is not installed", Toast.LENGTH_LONG).show();
【讨论】:
【参考方案2】:如何查看 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();
或
Query the Package Manager看是否提前:
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);
如何将参数传递给应用程序或了解其功能:
-
List of Available Intents for Google Applications
List of Intents by 3rd parties @ OpenIntents
【讨论】:
【参考方案3】:您正在寻找的是 intents 和 intent 过滤器。
android 开发者指南中详细介绍了您想了解的一切。
http://developer.android.com/guide/topics/intents/intents-filters.html
【讨论】:
以上是关于android:我如何从我的应用程序中打开另一个应用程序?的主要内容,如果未能解决你的问题,请参考以下文章
如何直接从我的 Android 应用程序打开 Amazon AppStore?
如何在 Android 中从另一个应用程序启动 Activity
如何从我的 android 应用程序中尽快获得准确的纬度/经度?
如何从我的网络浏览器 (Chrome) 在 Android 中打开任何应用程序?我与 A Href 链接有啥关系?