【问题标题】:Android Contacts Query Gets DuplicatesAndroid 联系人查询获取重复项
【发布时间】: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();

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

【问题讨论】:

    标签: android sql contactscontract android-contacts


    【解决方案1】:

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

    故事是 ContentProvider 背后的数据可能不是数据库。它可以是 XML、JSON、FileSystem 等……所以这些没有 Group By 选项,因此他们把它排除在外。你也不能假设 count(_id) 总是有效的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-16
      • 1970-01-01
      相关资源
      最近更新 更多