Android ContactsContract.Data隐式联接列不工作?
很抱歉,如果这可能是一个重复的问题,我花了一个晚上试图把我的头围绕这个问题,我似乎找不到其他的帖子,可能会对这个问题投下一些光,所以我希望更多的几双眼睛可能会发现一些东西 API文档给我的印象是,当您指定某些字段时,库会执行一些魔术,并在后台为您执行隐式连接 似乎对我不起作用Android ContactsContract.Data隐式联接列不工作?,android,Android,很抱歉,如果这可能是一个重复的问题,我花了一个晚上试图把我的头围绕这个问题,我似乎找不到其他的帖子,可能会对这个问题投下一些光,所以我希望更多的几双眼睛可能会发现一些东西 API文档给我的印象是,当您指定某些字段时,库会执行一些魔术,并在后台为您执行隐式连接 似乎对我不起作用 import android.provider.ContactsContract.CommonDataKinds.Phone; private Cursor getContacts() { // Run quer
import android.provider.ContactsContract.CommonDataKinds.Phone;
private Cursor getContacts()
{
// Run query
Uri uri = Phone.CONTENT_URI;
String[] projection = new String[] {
Phone.DISPLAY_NAME,
Phone.NUMBER,
Phone.CONTENT_ITEM_TYPE,
Phone.HAS_PHONE_NUMBER,
Phone.IN_VISIBLE_GROUP
};
String selection = Phone.HAS_PHONE_NUMBER + " = '1' AND " + Phone.IN_VISIBLE_GROUP + " = '1'";
String[] selectionArgs = null;
String sortOrder = Phone.DISPLAY_NAME + " COLLATE LOCALIZED ASC";
return getContentResolver().query(uri, projection, selection, selectionArgs, sortOrder);
}
当运行此命令时,它将随着以下命令终止:
java.lang.IllegalArgumentException: Invalid column vnd.android.cursor.item/phone_v2
从it文档中明确指出:
You can use all columns defined for ContactsContract.Data as well as the following aliases.
我缺少什么?Phone.CONTENT\u ITEM\u TYPE是您的问题。这不是列名,而是Data.MIME_TYPE设置为的常量。从投影中删除它,它应该会很好。Phone.CONTENT\u ITEM\u类型是您的问题。这不是列名,而是Data.MIME_TYPE设置为的常量。把它从你的投影上移开,它应该是好的