2012-09-19 7 views
1

안드로이드에서 내 주소록의 모든 단일 번호를 편집하는 기능을 만들고 싶습니다. 그러나 찾은 모든 예제는 연락처 번호 하나만 편집하므로 연락처에있는 경우 1 개 이상의 숫자는 편집되지 않습니다. 예를 들어안드로이드에서 모든 전화 번호 하나에 1 자리 추가하기

:

093456432 - cellphone 
2345678 - house 
6789504 - work 
34567832 - other 

그리고 변화 같은 결과 있도록 앱이 두 번째 위치에 예 "8"1 더 많은 숫자를 추가합니다 :

에이미는이 숫자를 가지고 :

0893456432 - cellphone 
28345678 - house 
68789504 - work 
384567832 - other 

그리고 내 주소록의 모든 연락처에 대해 이러한 작업이 필요합니다.

이미 테스트 할 원래 번호를 대체 할 수있는 번호를 불 태우지 만 전화 번호 인 TYPE_HOME 만 수정하고 어떻게 할 수 있을지 궁금해했습니다. 연락처 번호를 수정할 수있는 유형 :

private void updateContact(String name, String phone) 
{ 
    ContentResolver cr = 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.Phone.CONTENT_ITEM_TYPE, 
      String.valueOf(ContactsContract.CommonDataKinds.Phone.TYPE_HOME) }; 

    Cursor phoneCur = managedQuery(ContactsContract.Data.CONTENT_URI, null, where, params, null); 

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

    ops.add(ContentProviderOperation 
     .newUpdate(ContactsContract.Data.CONTENT_URI) 
     .withSelection(where, params) 
     .withValue(ContactsContract.CommonDataKinds.Phone.DATA, phone) 
     .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(); 
    } 

    // Toast.makeText(NativeContentProvider.this, "The number of have been updated " + name+ " to: " + phone, 
    // Toast.LENGTH_SHORT).show(); 
} 

감사합니다.

+3

나는 대답이 없지만 왜 내가 원하는지에 대해 병적으로 흥미를 느낍니다. – kcoppock

+1

'우리는 할 수 있기 때문에 모든 괴상한이 @kcoppock을 필요로합니다. :) – WarrenFaith

+0

우리나라에서 새로운 전기 통신 규제, 전화 번호 하나 더 추가해야합니다. –

답변

0

프로그램의 다른 곳에서 전화 번호를 읽는 중입니다. 그 자리에서 형식을 읽고 updateContact에 매개 변수로 전달하십시오.

+0

이것은 연락처를 가져 오기 위해 사용하는 함수이지만 모든 레지스트리를 관리하는 것이 조금 복잡하기 때문에 업데이트 함수에 속성을 보내는 방법을 알지 못합니다. http://pastebin.com/Rw3XUVRa –