2010-03-18 7 views
3

응용 프로그램을 작성하고 에뮬레이터에 2 개의 연락처를 추가했지만, 은 안드로이드 2.1에서 이름을 업데이트 할 수 없습니다. 코드는 android 1.6 플랫폼에서 작동합니다. 다음 코드를 사용하십시오. 안드로이드 1.6에서어떻게하면 안드로이드 2.1의 특정 연락처의 적절한 Uri를 얻을 수 있습니까?

ContentValues contactValues = new ContentValues(); 
contactValues.put(Contacts.People.NAME, firstName+" "+lastName); 
getContentResolver().update(UpdateContactUri, contactValues, null, 
null); 

내가 두 연락처를 열린 우리당를하는 무엇입니까 "내용 : // 연락처/인/1"과 "내용 : // 연락처/인/2".

하지만 2.1에 나는이 값은 "내용 : // 연락처/사람/8"입니다 무엇입니까 "내용 : // 연락처/인/9" 과 및 업데이트하는 동안 그 "java.IllegalArgumentException, 빈 값을 제공 "예외.

"content : // contacts/people/1"과 같은 정적 Uri를 넣으려고하면 코드가 성공적으로 디버깅되었지만 연락처가 업데이트되지 않았습니다.

어떻게 해결할 수 있습니까? 1.6 플랫폼과 같은 uri를 얻지 못하는 이유는 무엇입니까? 사전에

감사합니다 ...

답변

0

2.1 SDK는 그래서는 URI가 너무 다르다 확신 쿼리는 이제 다른 그것을 찾기 위해 이동 ContactsContract 라는 이름의 연락처에 대한 새의 ContentHandler가 포함되어 있습니다. 2.1에서 작업하여 연락처 필드를 편집하고 가져올 수 있습니다. http://developer.android.com/reference/android/provider/ContactsContract.html

+0

안녕 Eyal 님 덕분에, 지금은 내용과 같은 다른 URI를 얻을 수 있어요. 연락처/연락처/16하지만 contactValues.putContactsContract.Contacts.DISPLAY_NAME, firstName + ""+ lastName)에 의해 이름을 업데이트 할 수 없습니다. getContentResolver() .update (content : //com.android.contacts/contacts/16, contactValues, null, null); 업데이트 된 행 수가 0으로 표시됩니다. 여기 뭔가 잘못 되었나요? – Rishabh

0

아래 코드를 사용하여 에뮬레이터에 연락처를 추가 할 수 있습니다. import android.provider.Contacts.People; 안드로이드 2.1

public void addvaluestocontent() 
{ 
    ContentValues values = new ContentValues(); 
    values.put(People.NAME, "Abraham Lincoln"); 
    values.put(People._ID, "1"); 
    values.put(People.NUMBER, "23333"); 
    Uri uri = getContentResolver().insert(People.CONTENT_URI, values); 
} 
4

, 나는 연락처 이름 업데이트하려면이 해킹 코드를 사용 : //com.android : 답장을

public static void modifyPeopleName(ContentResolver cr, String id, 
     String sName) { 
    if (sName == null) 
     return; 

    ContentValues values = new ContentValues(); 
    int android_sdk_version = Integer.parseInt(Build.VERSION.SDK); 
    if (android_sdk_version < 7) { 
     values.put(People.NAME, sName); 
     cr.update(People.CONTENT_URI, values, People._ID+"="+id, null); 
    } else { 
     values.put("data1", sName); 
     cr.update(Uri.parse("content://com.android.contacts/data/"), 
       values, "raw_contact_id=" + id, null); 
    } 
    return; 
} 
관련 문제