Android Contacts Query获取重复项

时间:2011-03-16 06:33:11

标签: android sql contactscontract android-contacts

我正在尝试获取联系人的所有电话号码。当我查询与光标的联系人关联的数字时,我得到每个数字的重复。在窥探之后我相信这是因为链接配置文件(即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();

有没有办法将此查询限制为某个配置文件? 提前致谢。我已经搜索了一段时间,但却无法找到任何解决方案。

1 个答案:

答案 0 :(得分:0)

我最近在类似的东西上挣扎(例如,缺少group by子句),我设法通过将ContentProvider中的数据插入临时表并查询表中的结果来解决问题。

故事是ContentProvider背后的数据可能不是数据库。它可以是XML,JSON,FileSystem等......所以这些没有Group By选项,因此他们将其排除在外。你也不能总是认为count(_id)会起作用。