基于android5的手机通讯录代码
时间: 2023-12-07 08:00:59 浏览: 90
基于Android 5的手机通讯录代码可以利用Android提供的ContactsContract类来实现。首先,需要获取手机通讯录的读取权限,并在AndroidManifest.xml文件中申请相关的权限。然后,可以通过查询联系人的方式来获取通讯录中的联系人信息,包括姓名、电话号码、邮箱等。代码示例如下:
```java
// 申请读取通讯录权限
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_CONTACTS}, REQUEST_READ_CONTACTS);
}
// 查询通讯录
Uri uri = ContactsContract.Contacts.CONTENT_URI;
ContentResolver contentResolver = getContentResolver();
Cursor cursor = contentResolver.query(uri, null, null, null, null);
if (cursor != null && cursor.getCount() > 0) {
while (cursor.moveToNext()) {
String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
Cursor phoneCursor = contentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null);
while (phoneCursor != null && phoneCursor.moveToNext()) {
String phoneNumber = phoneCursor.getString(phoneCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
// 处理联系人信息
Log.d("Contact", "Name: " + name + ", Phone: " + phoneNumber);
}
if (phoneCursor != null) {
phoneCursor.close();
}
}
}
if (cursor != null) {
cursor.close();
}
```
以上代码通过查询ContactsContract提供的内容提供者来获取通讯录中的联系人信息,并通过Log打印出姓名和电话号码。在实际开发中,可以根据需求将获取的联系人信息展示在界面上,或者进行其他相关的操作。
阅读全文