从我的应用程序调用另一个应用

时间:2012-01-10 06:33:05

标签: android cordova

我正在创建一个应用程序,我需要在按钮单击时调用已安装在设备中的另一个应用程序。

我已经做了一些研究,我明白我需要调用一个意图。我不明白的是我没有我想要调用的应用程序的类名。例如,如果我想在按钮点击时从我的应用程序调用设备的库,我该怎么做?

Uri uri = Uri.parse("file:///sdcard/");
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(uri);
intent.setType("application/pdf");
startActivity(intent);
return true;

谢谢你们。我试过这段代码,但是说文件无法打开。

3 个答案:

答案 0 :(得分:3)

您需要致电Implicit Intents

来自文档:

  

隐含意图尚未指定组件;相反,他们必须   包括足够的信息,以便系统确定哪个   可用组件最适合该意图运行。

可以触发这些意图,提供任何操作类型类别信息

例如您要打开浏览器Activity并且您不知道Activity类名称,您将使用以下内容:

Intent in = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));
startActivity(in);

另一个例子:您不了解Gallery Activity课程,您将使用Implicit Intent这样称呼它:

Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Picture"), SELECT_PICTURE);

答案 1 :(得分:1)

这里是电话 享受编码......

    Intent res = new Intent();
    String mPackage = "com.ReachOut";
    String mClass = ".splash1";
    res.setComponent(new ComponentName(mPackage,mPackage+mClass));
    startActivity(res);

答案 2 :(得分:0)

如果确切的应用程序不太重要,并且您只需要显示内容的内容,则也可以完全省略组件名称。只需设置动作,数据和(可选)键入意图,让操作系统完成工作。

Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(/*your data uri*/);
intent.setType(/*your data's MIME type*/);
startActivity(intent);

此意图将由某个已注册了具有视图操作和相应MIME类型的意图的应用程序处理。这是隐含的意图,就像阿迪尔所说的那样。