我的内容提供者将数据存储在SQLite数据库中。一列是字符串。我想将此字符串作为文件附件附加到电子邮件中。
我通过实现ParcelFileDescriptor openFile(Uri uri, String mode)
实现了这一点。的实施
- 从数据库中查询列值
- 将返回的值存储在文件中
- 返回
ParcelFileDescriptor.open(file,ParcelFileDescriptor.MODE_READ_ONLY)
的结果
是否可以通过实现直接表示记录的列值的ParcelFileDescriptor
来避免这些步骤和重复?
(我可以将字符串值存储在文件中以避免重复,但我希望继续使用SQLite提供的FTS3功能)
谢谢你的帮助!
我简直不敢相信我错过了这条宝贵的信息:)
EDIT:如果数据库列值需要在返回客户端之前进行转换,则还有另一个方法ParcelFileDescriptor[]createPipe()更有用。
这里可以找到如何使用该方法的示例。