我想通过代码删除联系人图片,我尝试将 Photo.PHOTO 设置为 null。然而,这个语句会抛出异常。以下是代码:
ContentValues values = new ContentValues();
int result = 0;
values.put(Data.RAW_CONTACT_ID, contactId);
values.put(Data.MIMETYPE, Photo.CONTENT_ITEM_TYPE);
values.put(Photo.PHOTO, (byte[])null);
result = getContext().getContentResolver().update(Data.CONTENT_URI, values, Data.RAW_CONTACT_ID + "=?", new String[]{String.valueOf(contactId)});
以下是异常信息:
android.database.sqlite.SQLiteException: 未知错误 (code 0): 无法将 BLOB 转换为字符串 at android.database.CursorWindow.nativeGetString(Native Method) at android.database.CursorWindow.getString(CursorWindow.java:434) at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:51) at com.android.providers.contacts.DataRowHandler.getAugmentedValues(DataRowHandler.java:332) at com.android.providers.contacts.DataRowHandlerForStructuredName.update(DataRowHandlerForStructuredName.java:70) at com.android.providers.contacts.ContactsProvider2.updateData(ContactsProvider2.java:4507) at com.android.providers.contacts.ContactsProvider2.updateData(ContactsProvider2.java:4490) at com.android.providers.contacts.ContactsProvider2.updateInTransaction(ContactsProvider2.java:3875) at com.android.providers.contacts.AbstractContactsProvider.update(AbstractContactsProvider.java:143) at com.android.providers.contacts.ContactsProvider2.update(ContactsProvider2.java:2061) at android.content.ContentProvider$Transport.update(ContentProvider.java:235) at android.content.ContentResolver.update(ContentResolver.java:990)