android:如何从我的应用程序中打开另一个应用程序?
我知道在我自己的应用程序中打开另一个活动时如何使用intents和startActivity(),但如何启动不同的应用程序?具体而言:android:如何从我的应用程序中打开另一个应用程序?,android,api,android-activity,Android,Api,Android Activity,我知道在我自己的应用程序中打开另一个活动时如何使用intents和startActivity(),但如何启动不同的应用程序?具体而言: 如何确定用户的设备上是否安装了所需的应用程序 你如何启动这个应用程序 如何将参数传递给该应用程序 您如何找到特定应用程序(如Adobe reader或google maps)的所有这些信息 您正在寻找的是意图和意图过滤器 你想知道的一切都在Android开发者指南中有详细说明 如何查看意图是否可用: 尝试调用Intent并处理ActivityNotFoundE
- 如何确定用户的设备上是否安装了所需的应用程序
- 你如何启动这个应用程序
- 如何将参数传递给该应用程序
- 您如何找到特定应用程序(如Adobe reader或google maps)的所有这些信息
如何查看意图是否可用:
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();
}
或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);
}
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();
}