首页 > 代码库 > Android开发之获取手机通讯录

Android开发之获取手机通讯录

获取手机通讯录是Android最常用的小功能,今天自学到了,记下来,主要是通过系统自带的内容提供者提供的数据,我们使用内容接收者获取相应的数据到cursor中,然后获取对应data表中的字段,相关字段代表什么含义,只能自己去查了。

下面是手机通讯录列表的代码,仅供参考:

package com.andy.phonecontact;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.app.Activity;
import android.content.ContentResolver;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter;

/**
 * @author Zhang,Tianyou
 * @version 2014年11月18日 下午10:00:46
 */

public class MainActivity extends Activity {

	private ListView select_contact;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

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

		List<Map<String, String>> data = http://www.mamicode.com/getContactInfo();>
2  布局文件 在activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.andy.phonecontact.MainActivity" >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@+id/select_contact" />

</RelativeLayout>

3 ListView填充布局contact_item_view.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/tv_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="姓名"
        android:textColor="#ff0000"
        android:textSize="22sp" />

    <TextView
        android:id="@+id/tv_phone"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:drawableLeft="@android:drawable/ic_menu_call"
        android:text="5558"
        android:textColor="#000000"
        android:textSize="22sp" />

</LinearLayout>


4 添加对应的权限:

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



Android开发之获取手机通讯录