我想在联系人中获取最后添加的联系人,并获取我想要拉取联系人的最大_id。所以这是我想要实现的查询:
AppMain.applicationContext.getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,
new String[]{
"MAX(" + ContactsContract.Contacts._ID + ") as max_id",
ContactsContract.Contacts.DISPLAY_NAME,
ContactsContract.CommonDataKinds.Phone.HAS_PHONE_NUMBER
},
null, null, null);
但不幸的是我收到了这个错误: 无效列MAX(contact_id)为max_id
我尝试删除'作为max_id'但没有运气。
是否有人知道如何获取最后添加的联系人或获取联系人的最大_id。
答案 0 :(得分:1)
Android的ContentProvider
框架并未正式支持此功能,尤其是在提供商设置strictProjectionMap
标志的情况下。
但是这应该有效,它会询问按联系人ID排序的所有联系人,并将结果限制为1:
Cursor c = cr.query(Contacts.CONTENT_URI, new String[] { Contacts._ID }, null, null, Contacts._ID + "DESC LIMIT 1");
if (c != null && c.moveToNext()) {
Log.d(TAG, "id is: " + c.getLong(0));
}