在 Android 中从电话簿中读取联系人

Posted

技术标签:

【中文标题】在 Android 中从电话簿中读取联系人【英文标题】:Reading contacts from phone book in Android 【发布时间】:2011-04-02 15:01:45 【问题描述】:

我正在尝试在 android 中读取和显示电话簿中的联系人。我的设备与 gmail 和 funambol 同步,它们共有 600 多条记录。现在默认情况下,我的应用程序会读取 gmail 联系人。从显示的列表中选择任何联系人时,它会引发异常,因为列表显示的 gmail 联系人只有电子邮件,没有电话号码。

我需要电话号码才能在我的应用程序中使用。

谢谢

【问题讨论】:

【参考方案1】:

看看this answer here。它提供了正确联系联系人所需的所有详细信息。

崩溃的原因可能是因为您在没有电话号码时尝试读取电话号码,导致 NullPointerException。也许在你尝试使用它之前检查它是否为空,如果它为空,则要求用户再次选择。

如果这不正确,请随时提供更多详细信息,例如代码和 logcat 日志。

【讨论】:

你是对的。代码工作正常.. 但我的电话簿与 gmail 同步。此代码也显示来自 gmail 帐户的记录以及我的电话簿帐户。 它们是一回事。联系人是结合在一起的。就我而言,没有办法只获得不是 gmail 的。也许对新的 ContactsManager API 的 API 做一些研究。还没玩过 嗯,这很简单.. 只需要使用正确的内容 URI 调用.. 谢谢。好吧,我必须从列表中选择多个联系人。那么我是否必须使用不同的方式进行操作 @success_anil 您能否告诉我们哪个内容 URI 解决了您的问题?我有一个类似的:我想查询所有 phonecontacts,但不想将 facebook/gmail-Contacts 放在同一个列表中。

以上是关于在 Android 中从电话簿中读取联系人的主要内容,如果未能解决你的问题,请参考以下文章

android: 通过内容提供器读取系统联系人

从 RawContact Android 读取电话号码

如何从android中的联系人读取电子邮件字段?

在 Android 2.2 上读取联系人

android经常使用的电话操作

阅读联系电话号码适用于某些人而不适用于其他人?