Android 联系人查询获取重复项
Posted
技术标签:
【中文标题】Android 联系人查询获取重复项【英文标题】:Android Contacts Query Gets Duplicates 【发布时间】:2011-07-16 08:41:30 【问题描述】:我正在尝试获取某个联系人的所有电话号码。当我用光标查询与联系人关联的号码时,我得到每个号码的重复项。在窥探之后,我相信这是因为链接的个人资料(即 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】:我最近遇到了类似的问题(例如,缺少 group by 子句),我设法通过将 ContentProvider 中的数据插入临时表并查询表以获取结果来解决问题。
故事是 ContentProvider 背后的数据可能不是数据库。它可以是 XML、JSON、FileSystem 等……所以这些没有 Group By 选项,因此他们把它排除在外。你也不能假设 count(_id) 总是有效的。
【讨论】:
以上是关于Android 联系人查询获取重复项的主要内容,如果未能解决你的问题,请参考以下文章
获取联系人在一分钟内有 20 个活动的行 - SQL 查询 [重复]
如何从 Android 中的联系人列表中获取联系人?使用联系提供商
如何从android中的单个查询中获取联系人的名字,姓氏,电子邮件ID