ContactsContract.Groups.SUMMARY_WITH_PHONES导致崩溃

问题描述 投票:1回答:1

我有一些代码可以如下查询联系人数据库:-

Uri uri = ContactsContract.Groups.CONTENT_SUMMARY_URI;
String[] projection = new String[] {
    ContactsContract.Groups._ID,
    ContactsContract.Groups.TITLE,
    ContactsContract.Groups.SUMMARY_WITH_PHONES,
};
String selection = ContactsContract.Groups.SUMMARY_WITH_PHONES + ">0";
if (Version.androidVersion() <= 15) selection += " AND " + ContactsContract.Groups.GROUP_VISIBLE + "=1";
String[] selectionArgs = null;
String sortOrder = ContactsContract.Groups.TITLE + " COLLATE LOCALIZED ASC";
return new CursorLoader(r.activity, uri, projection, selection, selectionArgs, sortOrder);

它在相当多的设备上已经运行了相当长的一段时间。今天我在新的华为P8(Android 7.0)上进行了测试,但失败了:

Caused by: java.lang.IllegalArgumentException: Invalid column summ_phones

现在,summ_phones是与ContactsContract.Groups.SUMMARY_WITH_PHONES (Android source code)关联的字符串。而且,的确,如果我不去引用它,那么代码将停止崩溃。我找不到对该选项的引用,但已弃用。

我错过了什么?如何进行查询?

android android-contacts
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.