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

Android 从我的应用程序调用另一个应用程序,android,cordova,Android,Cordova,我正在创建一个应用程序,在该应用程序中,我需要在单击按钮时调用设备中已安装的另一个应用程序 我已经做了一些研究,我知道我需要为同样的事情打电话。我不明白的是,我没有要调用的应用程序的类名。例如,如果我想在单击按钮时从我的应用程序调用设备的库,我该怎么做 Uri uri = Uri.parse("file:///sdcard/"); Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setData(

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

我已经做了一些研究,我知道我需要为同样的事情打电话。我不明白的是,我没有要调用的应用程序的类名。例如,如果我想在单击按钮时从我的应用程序调用设备的库,我该怎么做

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;
谢谢各位。我尝试过这个代码,但它说文档无法打开。

这里是呼叫 享受编码

    Intent res = new Intent();
    String mPackage = "com.ReachOut";
    String mClass = ".splash1";
    res.setComponent(new ComponentName(mPackage,mPackage+mClass));
    startActivity(res);
这是电话 享受编码

    Intent res = new Intent();
    String mPackage = "com.ReachOut";
    String mClass = ".splash1";
    res.setComponent(new ComponentName(mPackage,mPackage+mClass));
    startActivity(res);
你需要打电话

从文件中:

隐含意图未指定组件;相反,他们必须这样做 包括足够的信息,以便系统确定 可用组件最好为此目的运行

这些意图可以通过提供任何动作类型类别信息来触发

例如您想打开浏览器
活动
,但您不知道
活动
类名,您将使用类似以下内容:

Intent in = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));
startActivity(in);
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Picture"), SELECT_PICTURE);
另一个示例:您不知道
库活动
类,您可以使用
隐式意图
这样称呼它:

Intent in = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));
startActivity(in);
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Picture"), SELECT_PICTURE);
你需要打电话

从文件中:

隐含意图未指定组件;相反,他们必须这样做 包括足够的信息,以便系统确定 可用组件最好为此目的运行

这些意图可以通过提供任何动作类型类别信息来触发

例如您想打开浏览器
活动
,但您不知道
活动
类名,您将使用类似以下内容:

Intent in = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));
startActivity(in);
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Picture"), SELECT_PICTURE);
另一个示例:您不知道
库活动
类,您可以使用
隐式意图
这样称呼它:

Intent in = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));
startActivity(in);
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Picture"), SELECT_PICTURE);

如果确切的应用程序不那么重要,并且您只需要显示内容的东西,那么您也可以完全省略组件名称。只需在intent上设置操作、数据和(可选)类型,并让操作系统完成工作

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

此意图将由已使用查看操作和适当MIME类型注册意图的某些应用程序处理。这是一个隐含的意图,就像Adil提到的那样。

如果确切的应用程序不那么重要,并且您只需要一些能够显示内容的东西,那么您也可以完全省略组件名称。只需在intent上设置操作、数据和(可选)类型,并让操作系统完成工作

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

此意图将由已使用查看操作和适当MIME类型注册意图的某些应用程序处理。这是一个隐含的意图,就像Adil提到的。

我有一个名为printershare的应用程序,我需要从我的应用程序中打开它。你能提供我打开它的uri吗???我想我错过了正确的URI。如果这是一个你没有编写的应用程序,你应该检查printershare文档。无法真正猜测包或类名。一般来说,您可能也不能假设安装了printershare。我有一个名为printershare的应用程序,需要从我的应用程序中打开它。你能提供我打开它的uri吗???我想我错过了正确的URI。如果这是一个你没有编写的应用程序,你应该检查printershare文档。无法真正猜测包或类名。一般来说,您可能也不能假设安装了printershare。“我不明白的是,我没有我要调用的应用程序的类名”是作者所说的。所以他/她不可能真正喜欢用这个来编码!“我不明白的是我没有一个我想调用的应用程序的类名”这是作者所说的。所以他/她不可能真正喜欢用这个来编码!