Android: Jak zapisać kontakty na sdcard jako vCard. Bez duplikatów?

Próbuję zapisać wszystkie kontakty w telefonie na karcie SD jako plik .vcf (vCard). To działa, ale mam problem. Każdy kontakt, który ma więcej niż jeden numer telefonu (numer telefonu komórkowego i numer służbowy), jest zapisywany dwukrotnie. I obie liczby są w każdym zduplikowanym kontakcie, więc są poprawne, po prostu zduplikowane. Czy ktoś może mi powiedzieć, jak rozwiązać ten problem? Mój kod to:

File delete=new File(Environment.getExternalStorageDirectory()+"/Contacts.vcf");

     if (delete.exists()) {
       delete.delete();

     }

    Cursor phones = ContactService.this.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 = ContactService.this.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();             
        } 
        catch (Exception e1) 
        {
             // TODO Auto-generated catch block
             e1.printStackTrace();
        }


      }

Dziękuję za pomoc.

questionAnswers(2)

yourAnswerToTheQuestion