给定一个联系人 ID,我可以通过对这些字段中的每一个进行不同的查询来获取各种联系方式(如姓名、电话、电子邮件 ID 等)。

但是有没有一种方法可以通过进行单个查询来获取与此联系人 ID 相关联的所有详细信息?

最佳答案

由于 Content Providers 引用了已弃用的类,因此不得不更改一些关于 ojit_a 的教程,这可能会有所帮助。

import android.provider.ContactsContract.Contacts;
import android.database.Cursor;

// Form an array specifying which columns to return, you can add more.
String[] projection = new String[] {
                         ContactsContract.Contacts.DISPLAY_NAME,
                         ContactsContract.CommonDataKinds.Phone
                         ContactsContract.CommonDataKinds.Email
                      };

Uri contacts =  ContactsContract.Contacts.CONTENT_LOOKUP_URI;
// id of the Contact to return.
long id = 3;

// Make the query.
Cursor managedCursor = managedQuery(contacts,
                     projection, // Which columns to return
                     null,       // Which rows to return (all rows)
                                 // Selection arguments (with a given ID)
                     ContactsContract.Contacts._ID = "id",
                                 // Put the results in ascending order by name
                     ContactsContract.Contacts.DISPLAY_NAME + " ASC");

10-08 14:55