2014-11-12 6 views
0

전적으로 전화 번호와 이름 만 연락처가 있습니다.안드로이드 연락처의 이메일을 프로그래밍 방식으로 업데이트하십시오.

이제 연락처 및 ADD 전자 메일 정보를 업데이트하고 싶습니다.

내가 뭘 - 이미 전자 메일 필드와 접촉 한 경우

public void updateMail(String name, String mail) { 
     ContentResolver cr = mcontext.getContentResolver(); 
     String where = ContactsContract.Data.DISPLAY_NAME + " = ? AND " + 
       ContactsContract.Data.MIMETYPE + " = ? AND " + 
       String.valueOf(ContactsContract.CommonDataKinds.Phone.TYPE) + " = ? "; 

     String[] params = new String[] {name, 
       ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE, 
       String.valueOf(ContactsContract.CommonDataKinds.Email.TYPE_HOME)}; 

     Cursor phoneCur = 
       mcontext.getContentResolver().query(ContactsContract.Data.CONTENT_URI, 
       null, where, params, null); 
     ArrayList<ContentProviderOperation> ops = new 
       ArrayList<ContentProviderOperation>(); 

     if ((null == phoneCur) ) { 
     //createContact(name, phone); 
      Log.e(TAG, "null == phoneCur"); 

     } else { 

     ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI) 
        .withSelection(where, params) 
        .withValue(ContactsContract.CommonDataKinds.Email.DATA, mail) 
        .build()); 
     } 

     phoneCur.close(); 

     try { 
      cr.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

if ((null == phoneCur))이 코드에서는 연락처 정보가 있는지 여부를 확인했습니다. null (No contact) 인 경우 ops.add() 코드가 누락되었습니다.

if ((null == phoneCur))을 제거하거나 'if'블록에 'ops.add()'를 추가하십시오.

관련 문제