防止在vcf文件中添加重复的联系人

时间:2014-07-30 11:05:54

标签: android

我已将以下链接中的代码复制到vcf文件中。联系人工作正常但问题是每个有多个电话号码(手机和工作号码)的联系人都会保存两次。并且这两个数字都在每个重复的联系人中,因此它们正在重复。请帮忙

Export the Contacts as VCF file

Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null, null, null);

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 = this.getContentResolver().openAssetFileDescriptor(uri, "r");
     fis = fd.createInputStream();
     byte[] buf = new byte[(int) fd.getDeclaredLength()];
     fis.read(buf);
     String VCard = new String(buf);


     //private File mPath = new File(Environment.getExternalStorageDirectory() + "//yourdir//");
      sdCard =new File(Environment.getExternalStorageDirectory() + "//yourdir//");
      directory = new File (sdCard.getAbsolutePath());
     directory.mkdirs();
     file = new File(directory, vfile);




     // String path = Environment.getExternalStorageDirectory().toString() + File.separator + vfile;
     FileOutputStream mFileOutputStream = new FileOutputStream(file,true);
     mFileOutputStream.write(VCard.toString().getBytes());        

     phones.moveToNext(); 
    //Log.d("Vcard",  VCard);
 } 
 catch (Exception e1) 
 {
      // TODO Auto-generated catch block
      e1.printStackTrace();
 }

 }}
Toast.makeText(this, "contacts copied to  " + vfile, 
       Toast.LENGTH_SHORT).show();

0 个答案:

没有答案