我正在尝试获取联系人的所有电话号码。当我查询与光标的联系人关联的数字时,我得到每个数字的重复。在窥探之后我相信这是因为链接配置文件(即Google个人资料和电话联系人个人资料)。这是我提取数字的代码:
Cursor cursor = getContentResolver().query(
Phone.CONTENT_URI,
new String[]{PhoneLookup.NUMBER},
Phone.CONTACT_ID + "=?",
new String[]{id}, null);
while(cursor.moveToNext()) {
String phoneNumber = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
Toast.makeText(getApplicationContext(), phoneNumber, Toast.LENGTH_LONG).show();
}
cursor.close();
有没有办法将此查询限制为某个配置文件? 提前致谢。我已经搜索了一段时间,但却无法找到任何解决方案。
答案 0 :(得分:0)
我最近在类似的东西上挣扎(例如,缺少group by子句),我设法通过将ContentProvider中的数据插入临时表并查询表中的结果来解决问题。
故事是ContentProvider背后的数据可能不是数据库。它可以是XML,JSON,FileSystem等......所以这些没有Group By选项,因此他们将其排除在外。你也不能总是认为count(_id)会起作用。