Android PhoneLookup.CONTENT_FILTER_URI抛出IllegalArgumentException:column' data1'不存在

时间:2015-11-30 22:44:28

标签: android android-sqlite android-contacts android-contentresolver contactscontract

经过大量的研究后,我把它扔掉,看看它是否有所收获。

我试图查询Android的phone_lookup表,尝试从电话号码中获取一些额外的数据(lookup_key,photo_thumb_uri等)。

这是我的疑问:

String[] projection = {Contacts._ID, Contacts.LOOKUP_KEY, Utils.hasHoneycomb() ? 
    Contacts.DISPLAY_NAME_PRIMARY : Contacts.DISPLAY_NAME, Utils.hasHoneycomb() ? 
    Contacts.PHOTO_THUMBNAIL_URI : Contacts._ID};
Uri uri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(phone.getNumber()));                                    
Cursor cs = context.getContentResolver().query(uri, projection, null, null, null);

在许多情况下,它运作得很好,我侥幸逃脱。但不幸的是,我已经看到了几个关于此错误的报告:

java.lang.IllegalArgumentException: column 'data1' does not exist at 
android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:167) at 
android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:137) at 
android.content.ContentProviderProxy.query(ContentProviderNative.java:366) at 
android.content.ContentResolver.query(ContentResolver.java:373) at 
android.content.ContentResolver.query(ContentResolver.java:316) at 

此版本仅针对Android版本4.2.2,4.4.2和5.1报告,其顺序为" frecuency precedence" (不确定是否有帮助。)

让我思考的是......我没有预测任何data1列。我没有尝试获取ContactsContract.CommonDataKinds.Email.DATAContactsContract.CommonDataKinds.Phone.Number(就像我在其他查询中那样,获取其他表格)。那我错过了什么?我有没有看到隐含的连接?

0 个答案:

没有答案