【发布时间】:2015-11-14 20:45:00
【问题描述】:
我想在装有 Android 4.4 的 Android 设备 (GT N5110) 中修改联系人姓名。我试图通过这种方法做到这一点:
ContentValues contentValues = new ContentValues();
String selection = ContactsContract.Contacts._ID + " = ? " ;
String[] selectionArgs = new String[] { Integer.toString(id) };
contentValues.put(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, lastName);
contentValues.put(ContactsContract.Contacts.STARRED, 2); // *
contentValues.put(ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME, lastName);
contentValues.put(ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME, firstName);
return this.context.getContentResolver().update(ContactsContract.Contacts.CONTENT_URI,
contentValues, selection, selectionArgs);
标有 * 的行是唯一修改联系人数据库的行。我还尝试了 applyBatch 并添加了 MIMETYPE 选择(ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)。 MIMETYPE 方法会抛出一些异常,并带有以下消息:
android.database.sqlite.SQLiteException: no such column: mimetype (code 1): , 编译时:SELECT _id FROM view_contacts_restricted WHERE _id = ? AND mimetype=?
我研究并尝试了update contacts display_name 和Modifying contact information 中的建议。
有人可以帮我吗?
【问题讨论】:
标签: android android-contentprovider android-contacts