0

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

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

4

1 回答 1

0

我最近在处理类似的事情(例如,缺少 group by 子句),我设法通过将 ContentProvider 中的数据插入临时表并查询表以获取结果来解决问题。

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

于 2011-03-16T07:08:44.107 回答