我想用以下代码更新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中访问姓名(第一,中间,最后)和地址(街道,城市,州,邮编,国家)的个人字段
答案 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;
}