2013-08-20 96 views
1

我想用特定的聯繫人ID(我使用vcf文件來獲取聯繫人的詳細信息)添加聯繫人到聯繫人數據庫,聯繫人ID保存在文件名(Dani_13)中,我需要添加此聯繫人到其在聯繫人中的原始條目。我一直在使用的代碼波紋管,但它不工作:如何恢復聯繫人?

String [] s = (vcard_file.getName()).split(Pattern.quote("_")); 
     String [] s2 = s[(s.length)-1].split(Pattern.quote(".")); 
     // int rawContactInsertIndex=ops.size(); 
     int id = Integer.getInteger(s2[0]); 
     ops.add(ContentProviderOperation 
       .newInsert(ContactsContract.RawContacts.CONTENT_URI) 
       .withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null) 
       .withValue(ContactsContract.RawContacts.ACCOUNT_NAME, null) 
       .build()); 
ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)    
         .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, id) 
         .withValue(ContactsContract.Data.MIMETYPE,ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE) 
         .withValue(ContactsContract.CommonDataKinds.StructuredPostal.FORMATTED_ADDRESS, null) 
         .withValue(ContactsContract.CommonDataKinds.StructuredPostal.TYPE, ContactsContract.CommonDataKinds.StructuredPostal.TYPE_WORK) 
         .withValue(ContactsContract.CommonDataKinds.StructuredPostal.STREET, street) 
         .withValue(ContactsContract.CommonDataKinds.StructuredPostal.CITY, city) 
         .withValue(ContactsContract.CommonDataKinds.StructuredPostal.REGION, state) 
         .withValue(ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE, zipcode) 
         .withValue(ContactsContract.CommonDataKinds.StructuredPostal.COUNTRY, country) 
         //.withValue(StructuredPostal.TYPE, StructuredPostal.TYPE_WORK) 
         .build()); 

回答

0

試試這個:

ContentResolver cr = getContext().getContentResolver(); 
      Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, 
        null, null, null, null); 

      if (cur.getCount() > 0) { 
       while (cur.moveToNext()) { 
         String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID)); 
         String name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); 
         if (Integer.parseInt(cur.getString(
          cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) { 
          Cursor pCur = cr.query(
            ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
            null, 
            ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?", 
            new String[]{id}, null); 
          while (pCur.moveToNext()) { 
           String phoneNo = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 

          } 
         pCur.close(); 
        } 
       } 
      } 

爲我工作。

+0

我是新來的機器人所以,請你能解釋一下嗎? – user2678140

+0

明白了,這個http://www.higherpass.com/Android/Tutorials/Working-With-Android-Contacts/幫助了很多/ – user2678140

相關問題