Android获取联系人信息

获取联系人信息在 Android 开发中挺常见的任务,你会经常需要访问用户的通讯录数据。其实,Android 的联系人数据就存储在 SQLite 数据库里,通过 ContentProvider 来访问它。最常用的类是ContactsContract,它了许多常量和方法来联系人数据。

,记得在你的AndroidManifest.xml文件里添加读取联系人权限哦,像这样:


,使用ContentResolver发起查询,拿到联系人数据。举个例子:

ContentResolver resolver = getContentResolver();
Uri contactsUri = ContactsContract.Contacts.CONTENT_URI;
Cursor cursor = resolver.query(contactsUri, null, null, null, null);

查询结果会存储在Cursor对象里,遍历它可以获取每个联系人的信息,包括联系人名字、电话等。记得遍历时要小心哦,像这样:

if (cursor != null && cursor.moveToFirst()) {
do {
String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
//获取电话号码
} while (cursor.moveToNext());
}

你也可以通过ContactsContract.CommonDataKinds.Phone获取电话信息,记得使用完Cursor后要及时关闭它哦。

,获取联系人信息其实并不复杂,记得注意权限、兼容性问题,尤其是当你的 App 需要运行在不同版本的 Android 系统上时,最好加个版本判断。

如果你想进一步了解,像联系人分组、额外的信息(比如电子邮件)也可以通过ContactsContract.GroupsContactsContract.Data获取。

rar 文件大小:128.6KB