2

我正在尝试创建一种文件管理器以允许用户将文件(从文件管理器)上传到互联网。

我想了解如何触发此应用程序。

例如:当使用 Gmail 并按下添加附件按钮时,Android 会显示两个应用程序(Gallery 和 FileExpert)来从中选择内容。

  • 这是如何实现的?
  • 广播什么样的意图(如果使用意图)?
  • 按添加附件按钮可以调用的 Gallery 和 FileManager 是什么样的对象?
4

2 回答 2

2

你是对的,这是使用 Intents 实现的。特别是,调用应用程序(在您的示例中为 Gmail)发送上传一个或多个文件的意图。对于选择文件,intent 是Intent.ACTION_GET_CONTENT

要将您的应用程序添加到处理此意图的应用程序列表中,您需要在清单中指定它。根据这个文档,它看起来像这样:

<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>
于 2013-08-22T11:43:51.493 回答
0

请参阅以下代码段

    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..."));           
于 2013-08-22T11:04:17.267 回答