更新SORT_KEY_PRIMARY但在android中出错

时间:2015-01-26 12:33:10

标签: android

这个问题让我很久很担心。我尝试更新联系人display_name,它正在运行。

ArrayList<ContentProviderOperation> ops = new ArrayList<>();
ContentProviderOperation.Builder builder = ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI);
builder.withSelection(ContactsContract.Data.CONTACT_ID + "=?" + " AND " +
            ContactsContract.Data.MIMETYPE + "=?", 
            new String[{String.valueOf(id), ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE}); 
builder.withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, displayName);
ops.add(builder.build());
try {
    cr.applyBatch(ContactsContract.AUTHORITY, ops);
} catch (RemoteException | OperationApplicationException e) {
    e.printStackTrace();
}

但是当我想要更新SORT_KEY_PRIMARY时,没有任何事情发生。

ArrayList<ContentProviderOperation> ops = new ArrayList<>();
ContentProviderOperation.Builder builder = ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI);
builder.withSelection(ContactsContract.Data.CONTACT_ID + "=?" + " AND " +
            ContactsContract.Data.MIMETYPE + "=?", 
            new String[{String.valueOf(id), ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE}); 
builder.withValue(ContactsContract.CommonDataKinds.StructuredName.SORT_KEY_PRIMARY, sort_key);
ops.add(builder.build());
try {
    cr.applyBatch(ContactsContract.AUTHORITY, ops);
} catch (RemoteException | OperationApplicationException e) {
    e.printStackTrace();
}

当我同时更新display_name和sort_key_primary时出错。

builder.withValue(ContactsContract.CommonDataKinds.StructuredName.SORT_KEY_PRIMARY, pinyin);
builder.withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, displayName);

android.database.sqlite.SQLiteException:没有这样的列:sort_key(代码1):,同时编译:UPDATE数据SET sort_key =?,data11 =?,data1 =?,data2 =?,data10 =? WHERE _id =?

0 个答案:

没有答案