100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > android获取手机通讯录

android获取手机通讯录

时间:2024-01-09 05:45:35

相关推荐

android获取手机通讯录

在android中读取联系人信息的程序,包括读取联系人姓名、手机号码和邮箱

(转载自博客:/error404/archive//03/12/2956090.html)

1:androidmanifest.xml的内容

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="/apk/res/android"package="cn.itcast.contacts"android:versionCode="1"android:versionName="1.0"><application android:icon="@drawable/icon" android:label="@string/app_name"><uses-library android:name="android.test.runner" /><activity android:name=".MainActivity"android:label="@string/app_name"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application><uses-sdk android:minSdkVersion="8" /><uses-permission android:name="android.permission.READ_CONTACTS" /><uses-permission android:name="android.permission.WRITE_CONTACTS" /><instrumentation android:name="android.test.InstrumentationTestRunner"android:targetPackage="cn.itcast.contacts" android:label="Tests for My App" /></manifest>

里面重要的是搭建测试环境和添加<uses-permission>,即读取和写入联系人信息的权限

2:读取的主要方法

/** 读取联系人的信息*/public void testReadAllContacts() {Cursor cursor = this.getContext().getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);int contactIdIndex = 0;int nameIndex = 0;if(cursor.getCount() > 0) {contactIdIndex = cursor.getColumnIndex(ContactsContract.Contacts._ID);nameIndex = cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);}while(cursor.moveToNext()) {String contactId = cursor.getString(contactIdIndex);String name = cursor.getString(nameIndex);Log.i(TAG, contactId);Log.i(TAG, name);/** 查找该联系人的phone信息*/Cursor phones = this.getContext().getContentResolver().query(monDataKinds.Phone.CONTENT_URI, null, monDataKinds.Phone.CONTACT_ID + "=" + contactId, null, null);int phoneIndex = 0;if(phones.getCount() > 0) {phoneIndex = phones.getColumnIndex(monDataKinds.Phone.NUMBER);}while(phones.moveToNext()) {String phoneNumber = phones.getString(phoneIndex);Log.i(TAG, phoneNumber);}/** 查找该联系人的email信息*/Cursor emails = this.getContext().getContentResolver().query(monDataKinds.Email.CONTENT_URI, null, monDataKinds.Email.CONTACT_ID + "=" + contactId, null, null);int emailIndex = 0;if(emails.getCount() > 0) {emailIndex = emails.getColumnIndex(monDataKinds.Email.DATA);}while(emails.moveToNext()) {String email = emails.getString(emailIndex);Log.i(TAG, email);}}}

3:目前手机中的联系人信息,有两个联系人的信息,如图所示,

这是Hellen的联系信息

这是Mike的联系信息

4:测试结果,在控制台输出的内容为:

可以看到在控制台输出了两个联系人的信息。

//--------------------------------------

获取所有分组编号和组的名称

Cursor groupInfoCursor = getContentResolver().query(ContactsContract.Groups.CONTENT_URI, null, null, null, null);while(groupInfoCursor.moveToNext()) {int idIndex = groupInfoCursor.getColumnIndex(ContactsContract.Groups._ID);int titleIndex = groupInfoCursor.getColumnIndex(ContactsContract.Groups.TITLE);String id = groupInfoCursor.getString(idIndex);String title = groupInfoCursor.getString(titleIndex);}groupInfoCursor.close();

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。