package com.yarin.android.Examples_03_02;
import android.app.Activity;
import android.content.ContentResolver;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.widget.TextView;
public class Activity01 extends Activity {
public void onCreate(Bundle savedInstanceState) {
TextView tv = new TextView(this);
String string = "";
super.onCreate(savedInstanceState);
//�õ�ContentResolver����
ContentResolver cr = getContentResolver();
//ȡ�õ绰���п�ʼһ��Ĺ��
Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
//�����ƶ�һ�¹��
while (cursor.moveToNext()) {
// �Ȼ�ȡĿ�������˵� _ID,
String contractId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
//ȡ����ϵ������
String name = getContractName(cursor);
String phoneNumber = getFirstPhoneNumber(cursor, contractId);
String email = getFirstEmail(cursor, contractId);
string += (name + ":" + phoneNumber + ":"+email+"\n");
}
cursor.close();
//����TextView��ʾ������
tv.setText(string);
//��ʾ����Ļ
setContentView(tv);
}
private String getFirstEmail(Cursor cursor, String contractId) {
String email = null;
Cursor emailCursor = getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, null, ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = " + contractId, null, null);
if (emailCursor.moveToFirst()) {
email = emailCursor.getString(emailCursor.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
}
return email;
}
private String getFirstPhoneNumber(Cursor cursor, String contractId) {
ContentResolver cr = getContentResolver();
String contact = getContractName(cursor);
// ������_ID���ҵ绰���룬�绰������ܲ�ֹһ��,�������ж����绰����
String isPhone = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
String number = null;
// ����е绰���룬������ȥquery�绰����
if (Integer.parseInt(isPhone) > 0) {
Cursor phoneNumberCursor = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contractId, null, null);
while (phoneNumberCursor.moveToNext()) {
number = phoneNumberCursor.getString(phoneNumberCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
// ֻȡ��һ���绰����
break;
}
phoneNumberCursor.close();
}
return number;
}
private String getContractName(Cursor cursor) {
int nameFieldColumnIndex = cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
return cursor.getString(nameFieldColumnIndex);
}
}