如何从其他应用程序启动Android应用程序并给它一个文件名,所以启动应用程序打开此文件并执行其默认视图操作?

时间:2015-05-24 08:17:56

标签: android android-intent android-activity

我有一个Android应用程序,我想在我的应用程序中启动另一个应用程序。我知道我可以通过以下程序获得意图并运行所需的应用程序:

Intent intent = getPackageManager().getLaunchIntentForPackage("pacage_name");
startActivity(intent);

但我们如何能够包含一个参数,例如一个文件名,哪个应用可以打开并对其进行操作。

假设我们不知道应用程序活动的结构。它可以是任何标准的Android应用程序(如图库)。我们知道它可以获得一个参数并对其进行操作。

一般来说,android系统如何启动应用程序并传递一个文件名来对其进行操作?

2 个答案:

答案 0 :(得分:0)

您可以使用intent.putExtra将任何类型的信息传递给其他活动。

例如在您的示例中,我们可以执行此操作:

String yourInformation = "SomeInformation";

Intent intent = getPackageManager().getLaunchIntentForPackage("pacage_name");
intent.putExtra("MY_INTENT_TAG", yourInformation);
startActivity(intent);

在您要去的Activity(即用户最终会在哪里),您可以这样做:

Bundle extras = getIntent().getExtras();
String receivedInfo = extras.getString("MY_INTENT_TAG");

您还可以阅读有关使用Intent here开始活动的更多信息,并详细了解Intent课程here

答案 1 :(得分:0)

我找到了一些如何做到这一点:

Intent viewDoc = new Intent(Intent.ACTION_VIEW);
viewDoc.setDataAndType(Uri.fromFile(new File("file_path")),"mimeType");
viewDoc.setComponent(new ComponentName("com.package.name","com.package.name.DesiredActivity"));

startActivity(viewDoc);