0

이 코드를 사용하면 연락처가 사라집니다. 난 당신이 수를 삽입하거나 업데이트하려고새 전화 번호를 추가하면 Android 연락처가 사라집니다.

public void addNumber(Context cos, String contactID, String newPhoneNumber){ 
     ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>(); 


ops.add(ContentProviderOperation 
         .newUpdate(ContactsContract.Data.CONTENT_URI) 
         .withSelection(ContactsContract.CommonDataKinds.Phone.CONTACT_ID+"=?", new String[]{contactID}) 
         .withValue(ContactsContract.Data.MIMETYPE,ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE) 
         .withValue(ContactsContract.CommonDataKinds.Phone.DATA, newPhoneNumber).build()); 

       try { 
        cos.getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops); 
       } catch (RemoteException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } catch (OperationApplicationException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 
} 
+0

같은 시도 연락처에 다른 전화 번호를 추가하기 위해 노력하고있어? 코드는 업데이트를 시도합니다. – iago

답변

0

ArrayList<ContentProviderOperation> ops = 
     new ArrayList<ContentProviderOperation>(); 

ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI) 
     .withValue(Data.RAW_CONTACT_ID, rawContactId) 
     .withValue(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE) 
     .withValue(Phone.NUMBER, "1-800-GOOG-411") 
     .withValue(Phone.TYPE, Phone.TYPE_CUSTOM) 
     .withValue(Phone.LABEL, "free directory assistance") 
     .build()); 
getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);