java Contacs在Android 7中将其保存到vcf文件时无法正确保存
我有一个代码,它不会始终保存联系人。每次创建csv文件时,文件大小都不同,因此文件中包含的行数也不同。仅在安卓7上,它并不是一个好的备份。我在Android 7上使用emulator,我也在Android 5.1物理设备上测试了相同的代码,每次使用完全相同的文件大小,它似乎都做得很好。唯一的问题是安卓7,它使文件有时更小,有时更大。以下是用于备份联系人的代码:
public void get(Cursor cursor) {
//cursor.moveToFirst();
String lookupKey = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY));
Uri uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_VCARD_URI, lookupKey);
AssetFileDescriptor fd;
try {
fd = this.getContentResolver().openAssetFileDescriptor(uri, "r");
FileInputStream fis = fd.createInputStream();
byte[] buf;
if (fd.getDeclaredLength() != AssetFileDescriptor.UNKNOWN_LENGTH) {
buf = new byte[(int) fd.getDeclaredLength()];
} else {
buf = new byte[fis.available()];
}
fis.read(buf);
String vcardstring = new String(buf);
vCard.add(vcardstring);
mFileOutputStream.write(vcardstring.toString().getBytes());
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
感谢您的帮助
共 (0) 个答案