安卓:如何使用内容提供商将文件从url附加到电子邮件意向



当我点击我的活动文件中的发送电子邮件时,从url显示为附件,但文件从未收到,只有电子邮件正文和主题。

 @Override
                public void onClick(View v) {
                        // TODO Auto-generated method stub
                        Intent intent = new Intent(Intent.ACTION_SEND_MULTIPLE);
                        intent.setType("*/*");
                        intent.putExtra(Intent.EXTRA_SUBJECT, "Attachment from app");
                        intent.putExtra(Intent.EXTRA_TEXT, "Sending mp3 file " + title);
                        intent.putExtra(Intent.EXTRA_EMAIL, new String[] {"some_email@email.com"});
                        ArrayList<Uri> uris = new ArrayList<Uri>();
                        uris.add(Uri.fromFile(new File(trackUrl)));
                        intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
                        startActivity(Intent.createChooser(intent, "Send mail"));
                }
        });    

这是我的项目https://docs.google.com/file/d/0B-91m-6ZevwCRTYtYXRGb3l6UVE/edit?usp=sharing这是我的活动代码:http://pastebin.com/uzdJYxab.我收到的任务表明

ACTION_SEND_MULTIPLE将使用应该访问声音文件的外部活动。要允许这样的访问,您需要:-创建ContentProvider。-重写公共ParcelFileDescriptor openFile(Uri-Uri,字符串模式)

然而,关于如何使用内容提供商及其方法ParcelFileDescriptor openFile(Uri-Uri,String模式)以将url中的文件作为电子邮件附件进行附加,几乎没有信息。至少有人能给我指一指正确的方向吗?

我意识到这已经很老了,但如果其他人偶然发现这个问题:

"file://"URI可能不起作用,这取决于其他应用程序是否有权访问特定文件。如果您引用的文件是MODE_PRIVATE(并且在API 17中不赞成使用MODE_WORLD_READABLE),则它不太可能工作。

Google在其v4支持库中提供了一个FileProvider。

文档中提供了关于如何配置它的信息

他们还接受了一项名为"共享文件"的培训,提供了一个演练式的解释。

相关内容

  • 没有找到相关文章

最新更新