如何在内容提供商中存储文件

bri*_*rig 7 android android-contentprovider

我需要将Zip文件附加到Android电子邮件编辑器中的消息.

Zip文件由我的应用程序创建并存储在应用程序的私有存储区域中(可通过getFilesDirectory()访问).我正在获取此Zip文件的URI并将其附加到电子邮件意图对象; 当我启动电子邮件活动时,我能看到附件,但我的电子邮件收件人没有收到文件,

在对此进行一些研究后,我发现我的应用程序数据无法与其他应用程序共享(在本例中为Android电子邮件应用程序).

为了解决这个问题,我想实现使用内容提供商分享我的应用程序数据的推荐解决方案.

首先,我想确认这是否可行,如果可以的话,请给我一些关于如何做到这一点的提示.我需要知道如何将我的Zip文件从我的应用程序的getFilesDirectory()复制到内容提供程序,以及如何将内容提供程序URI附加到电子邮件意图对象.

我无法将我的zip文件放入SD卡......

我只想将我的文件存储到我的设备内部存储中并附加到电子邮件编辑器.

Com*_*are 5

默认情况下,ContentProvider设备上的任何应用程序都可以访问a .如果你愿意为通过设备上的任何应用程序访问这些文件,创建一个ContentProvider与真正的实现getType()openFile().然后,该content://URL应与电子邮件应用程序AFAIK一起使用.

这是一个示例项目,演示ContentProvider从本地存储器提供文件,在本例中为a WebView.