您的位置:首页 > 移动开发 > Android开发

Android项目——读取手机联系人信息

2014-08-21 16:01 351 查看
加入读取联系人信息的权限

<uses-permission android:name="android.permission.READ_CONTACTS"/>

content://com.android.contacts/contacts 操作的数据是联系人信息Uri
content://com.android.contacts/data/phones 联系人电话Uri
content://com.android.contacts/data/emails 联系人Email
Uri

读取联系人信息
Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,
null,
null, null, null);

while
(cursor.moveToNext()) {

String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));

Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID
+" = "+ contactId,
null,
null);

while
(phones.moveToNext()) {

String phoneNumber = phones.getString(phones.getColumnIndex(
ContactsContract.CommonDataKinds.Phone.NUMBER));
Log.i("RongActivity",
"phoneNumber="+phoneNumber);
}
phones.close();

Cursor emails = getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Email.CONTACT_ID
+ " = " + contactId,
null,
null);

while
(emails.moveToNext()) {

// This would allow you get several email addresses
String emailAddress = emails.getString(emails.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
Log.i("RongActivity",
"emailAddress="+ emailAddress);
}
emails.close();
}
cursor.close();
---------------------------------

/**

* 读取联系人信息

* @author Administrator yangchao[/u]

*

*/

public class MainActivity extends Activity

{

public static final String TAG = "yangchao";

private ListView lvContent;

@Override

protected void onCreate(Bundle
savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

lvContent =
(ListView) findViewById(R.id.lvContent);

List<HashMap<String, Object>> data = new ContactService(this).getInfo();

SimpleAdapter adapter = new SimpleAdapter(this,
data, R.layout.item,

new String[]{"name", "number", "email"}, new int[]{R.id.tvName,
R.id.tvNumber,
R.id.tvEmail});

lvContent.setAdapter(adapter);

}

}

---------------------------------------------------------------------------------------------------------------

public class ContactService

{

private Context context;

public ContactService(Context
context)

{

this.context =
context;

}

public List<HashMap<String,
Object>> getInfo()

{

List<HashMap<String, Object>> data = new ArrayList<HashMap<String,
Object>>();

ContentResolver contentResolver = context.getContentResolver();

Cursor cursor = contentResolver.query(

ContactsContract.Contacts.CONTENT_URI, null, null, null, null);

while (cursor.moveToNext())

{

String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));

String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));

HashMap<String, Object> map = new HashMap<String,
Object>();

map.put("name",
name);

Cursor phones = contentResolver.query(

ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,

ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "
= "

+ contactId, null, null);

while (phones.moveToNext())

{

String phoneNumber = phones

.getString(phones

.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));

map.put("number",
phoneNumber);

Log.i("RongActivity", "phoneNumber=" +
phoneNumber);

}

phones.close();

Cursor emails = contentResolver.query(

ContactsContract.CommonDataKinds.Email.CONTENT_URI, null,

ContactsContract.CommonDataKinds.Email.CONTACT_ID + "
= "

+ contactId, null, null);

while (emails.moveToNext())

{

//
This would allow you get several email addresses

String emailAddress = emails

.getString(emails

.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));

map.put("email",
emailAddress);

Log.i("RongActivity", "emailAddress=" +
emailAddress);

}

data.add(map);

emails.close();

}

cursor.close();

return data;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: