【发布时间】:2012-02-17 23:44:47
【问题描述】:
我正在开发一个 Android Honeycomb (v3.0) 应用程序,该应用程序需要显示存储在设备上注册的 Google 帐户中的所有联系人。我遇到的问题之一是我只能检索“我的联系人”、“Android 中已加星标”和“其他联系人”中可用的联系人。我还希望能够从“目录”中检索联系人。我相信“目录”部分是 Google 为希望向其他人提供其域内所有成员/员工目录的组织和公司提供的一项功能。请看下面的截图:
到目前为止,我的清单文件中有以下行:
<uses-permission android:name="android.permission.READ_CONTACTS" />
我已尝试使用此代码:
Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
while (cursor.moveToNext()) {
String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
}
cursor.close();
就我而言,“我的联系人”和“在 Android 中已加星标”是空的。但是,获得了“其他联系人”中的(1)联系人。不过,“目录”包含数百个未检索到的联系人。
我的问题:有什么方法可以确保“目录”中的联系人也被检索到?我知道我可以简单地使用网络浏览器复制联系人然后同步将它们添加到设备中,但是如果将新联系人添加到“目录”中,我每次都必须手动执行此操作,因此这对我来说不是一个好选择。请指教。
【问题讨论】:
-
我刚刚尝试了 getContacts() 函数(ContactManager.java 文件)中的代码,但无论我将 mShowInvisible 设置为什么,最终都没有条目。
-
设置
String selection = null;返回的结果与我最初使用我提到的代码时的结果相同。 -
在搜索答案但找不到答案后,我最终将目录中的联系人复制到“我的联系人”中。很遗憾,这必须手动完成。
标签: android android-3.0-honeycomb android-contacts contactscontract google-contacts-api