1:androidmanifest.xml的内容
package="cn.itcast.contacts"
android:versionCode="1"
android:versionName="1.0">
android:label="@string/app_name">
android:targetPackage="cn.itcast.contacts" android:label="Tests for My App" />
里面重要的是搭建测试环境和添加,即读取和写入联系人信息的权限
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();