无法在模拟器2.1中更新联系人姓名

时间:2010-03-15 06:41:14

标签: android android-emulator

我想用以下代码更新android 2.1模拟器中现有联系人的名字,但总是得到“ java.lang.IllegalArgumentException:Emplty values ”Exception。

ContentValues contactValues = new ContentValues(); contactValues.put(People.NAME,“rishabh”); getContentResolver()。update(UpdateContactUri,contactValues,null,null);

UpdateContactUri是与id 4现有联系的uri。 它正在使用模拟器1.6但不在2.1上。

我需要问的另一件事是如何在2.1中访问姓名(第一,中间,最后)和地址(街道,城市,州,邮编,国家)的个人字段

1 个答案:

答案 0 :(得分: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;
}