ParcelFileDescriptor能否表示数据库列



我的内容提供者将数据存储在SQLite数据库中。一列是字符串。我想将此字符串作为文件附件附加到电子邮件中。

我通过实现ParcelFileDescriptor openFile(Uri uri, String mode)实现了这一点。的实施

  1. 从数据库中查询列值
  2. 将返回的值存储在文件中
  3. 返回ParcelFileDescriptor.open(file,ParcelFileDescriptor.MODE_READ_ONLY)的结果

是否可以通过实现直接表示记录的列值的ParcelFileDescriptor来避免这些步骤和重复?

(我可以将字符串值存储在文件中以避免重复,但我希望继续使用SQLite提供的FTS3功能)

谢谢你的帮助!

是的,我使用公共ParcelFileDescriptor simpleQueryForBlobFileDescriptor()使其工作

我简直不敢相信我错过了这条宝贵的信息:)

EDIT:如果数据库列值需要在返回客户端之前进行转换,则还有另一个方法ParcelFileDescriptor[]createPipe()更有用。

这里可以找到如何使用该方法的示例。

最新更新