我正在创建一个应用程序,我需要在按钮单击时调用已安装在设备中的另一个应用程序。
我已经做了一些研究,我明白我需要调用一个意图。我不明白的是我没有我想要调用的应用程序的类名。例如,如果我想在按钮点击时从我的应用程序调用设备的库,我该怎么做?
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;
谢谢你们。我试过这段代码,但是说文件无法打开。
答案 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类型的意图的应用程序处理。这是隐含的意图,就像阿迪尔所说的那样。