我正在尝试创建一种文件管理器,以允许用户将文件(从文件管理器)上传到Internet。什么样的意图用于选择应用程序,以及如何听它?
我想了解这个应用程序将如何触发。
例如: 当使用Gmail并按下添加附件按钮时,Android向我显示两个应用程序(Gallery和FileExpert)从中选择内容。
- 这是如何完成的?
- 什么样的意图是brodacasted(如果意图被使用)?
- 通过按下添加附件按钮,Gallery和FileManager可以调用 的对象是什么类型?
我正在尝试创建一种文件管理器,以允许用户将文件(从文件管理器)上传到Internet。什么样的意图用于选择应用程序,以及如何听它?
我想了解这个应用程序将如何触发。
例如: 当使用Gmail并按下添加附件按钮时,Android向我显示两个应用程序(Gallery和FileExpert)从中选择内容。
你是正确的,这是使用意图实现。特别是,调用应用程序(例如Gmail)会发送一个上传一个或多个文件的意图。选择一个文件的意图是Intent.ACTION_GET_CONTENT。
要将您的应用程序添加到处理此意图的应用程序列表中,您需要在清单中指定它。据this documentation,它会是这个样子:
<activity android:name=".ui.MyActivity" >
<intent-filter>
<action android:name="android.intent.action.ACTION_GET_CONTENT" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="*/*" />
</intent-filter>
</activity>
谢谢,我认为这是正确的方向! –
看到下面的代码片段
ArrayList<Uri> uris = new ArrayList<Uri>();
File fileToEmail=new File("FIle Path");
Uri updf = Uri.fromFile(fileToEmail);//adding pdf uri
uris.add(updf);
final Intent emailIntent = new Intent(Intent.ACTION_SEND_MULTIPLE);
emailIntent.setType("image/*");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[] {});
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, caseObj.getCaseTitle());
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "");
emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("mailto:"));
emailIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
activity.startActivity(Intent.createChooser(emailIntent,"Send mail..."));
@PSoftware Sainath谢谢你,但我想有一个描述的行为,当用户点击Gmail上的添加附件时,我的应用程序被调用 –
ok你想显示FIle Explorer类的东西。 。? –
我们可以这么说... –
你可以简单地调用上下文菜单中点击连接按钮后... – Piyush
@Piyush古普塔谢谢你,但我想有一个行为作为一个描述,当用户点击Gmail上的添加附件时,我的应用程序被调用。 –
是的......我明白了......就像在某些情况下,当我们在设备上运行应用程序,并且如果进程正在同一项目中使用,那么在点击应用程序中的任何按钮后,它将打开带有两个应用程序名称的上下文菜单...不是吗??? – Piyush