こんにちは、連絡先を取得stackoverflow
できるアプリケーションを開発しようとしていますが、問題ありません。連絡先をフォーマットファイルとしてバックアップするために以下のアプローチを使用していますbackup
restore
backup
VCF
public static void getVCF() {
final String vfile = "contacts.vcf";
Cursor phones = mContext.getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null,
null, ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC");
phones.moveToFirst();
for (int i = 0; i < phones.getCount(); i++) {
String lookupKey = phones.getString(phones
.getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY));
Uri uri = Uri.withAppendedPath(
ContactsContract.Contacts.CONTENT_VCARD_URI, lookupKey);
AssetFileDescriptor fd;
try {
fd = mContext.getContentResolver().openAssetFileDescriptor(uri,
"r");
FileInputStream fis = fd.createInputStream();
byte[] buf = new byte[(int) fd.getDeclaredLength()];
fis.read(buf);
String VCard = new String(buf);
String path = Environment.getExternalStorageDirectory()
.toString() + File.separator + vfile;
FileOutputStream mFileOutputStream = new FileOutputStream(path,
true);
mFileOutputStream.write(VCard.toString().getBytes());
phones.moveToNext();
Log.d("Vcard", VCard);
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
しかしrestore
、謎です。インターネットでたくさん検索しましたが、成功しませんでした。backup
使用しようとしましIntent
たが、それは問題の解決策ではありません。コードは次のとおりです
final Intent intent = new Intent();
final MimeTypeMap mime = MimeTypeMap.getSingleton();
String tmptype = mime.getMimeTypeFromExtension("vcf");
final File file = new File(Environment.getExternalStorageDirectory().toString() +"/contacts.vcf");
intent.setDataAndType(Uri.fromFile(file),tmptype);
startActivity(intent);
Permissions
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.WRITE_CONTACTS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
restore
を使わずに連絡先をきちんとしたいIntents
。コードを使用してVCFファイルから連絡先をインポートする方法に関する有益なこれらの投稿に出くわしましたが
、コードの使用方法が混乱してしまいました。誰かこのパズルを解決するのを手伝ってくれませんか.
ありがとう。