2013-08-20 12 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/ helped alot / – user2678140

관련 문제