2010-03-15 93 views
0

我特林更新现有的Android 2.1模拟器用下面的代码接触,但总是得到的名称,更新联系人姓名“java.lang.IllegalArgumentException异常:Emplty值”异常。不能在模拟器2.1

ContentValues contactValues =新ContentValues(); contactValues.put(People.NAME “RISHABH”); 。 getContentResolver()更新(UpdateContactUri,contactValues,NULL,NULL);

UpdateContactUri是ID为4的现有联系人的URI。 它在模拟器1.6上工作,但不在2.1上。

还有一件事我要问我如何可以访问名(前,中,末)及地址(街道,城市,州,邮编,国家)的indivisual领域在2.1

回答

0

在Android 2.1的,我使用这个黑客的代码来更新联系人姓名:

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; 
}