我已经在互联网上搜索了这个问题,但没有得到任何有效的回应。 我相信它来自选择,但我不知道它有什么问题。
我得到这个错误:
android.database.sqlite.SQLiteException: no such column: data1 (Sqlite code 1): ,编译时:SELECT sort_key, photo_uri ...
执行此代码以检索电话联系人后:
Uri uri = ContactsContract.Contacts.CONTENT_URI;
String no07 = "%07";
String no407 = "%+407";
String selection = "((" + ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME_PRIMARY + " NOTNULL) AND ("
+ ContactsContract.Contacts.HAS_PHONE_NUMBER + "=1) AND ("
+ ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME_PRIMARY + " != '' ) AND (("
+ ContactsContract.CommonDataKinds.Phone.NUMBER + " LIKE '" + no07 + "' ) OR ("
+ ContactsContract.CommonDataKinds.Phone.NUMBER + " LIKE '" + no407 + "' )))";
Cursor phones = getActivity()
.getContentResolver()
.query(uri, null, selection, null, null);
如有任何帮助,我将不胜感激。
最佳答案
根据您的错误,您正在查询的 URI 中没有这样的列 data1
。 selection
中包含的 ContactsContract.CommonDataKinds.Phone.NUMBER
列应该会导致异常。
您可能想从 ContactsContract 查询不同的表,即 ContactsContract.Data
,如 the overview from the ContactsContract 所述
A row in the ContactsContract.Data table can store any kind of personal data, such as a phone number or email addresses.
关于android - sqlite.SQLiteException : no such column: data1 (Sqlite code 1): 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46395706/