【发布时间】:2019-04-27 08:34:09
【问题描述】:
我正在创建一个用于备份联系人的 .VCF 文件。由于FileDescriptor's 方法getDeclaredLength 返回的大小-1 与我从ContentResolver's openAssetFileDiscritor 方法获得的vCard-URI 的长度相同,因此创建和插入数据的过程失败。
这与asked here by Balakrishna Avulapati 完全相同。但是在这里提出相同问题的唯一问题是,所提出的解决方案对我来说有点难以理解。这不能解决我的问题。 @pskink 在上述链接的解决方案中的评论可能很有用,但我能够找到完整的源代码,因为评论中只提供了 1 行。
我正在使用下面的代码,
Uri uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_VCARD_URI, lookupKey);
AssetFileDescriptor fd = resolver.openAssetFileDescriptor(uri, "r");
FileInputStream fis = fd.createInputStream();
byte[] b = new byte[(int)fd.getDeclaredLength()];
fis.read(b);
请提出您的建议。谢谢你:)
【问题讨论】:
标签: file-descriptor android-7.0-nougat android-contentresolver