android通过ContentProvider 取得电话本的数据

             先通过getContentResolver 方法来取得一个ContentResolver 对象,然后通过
其query 方法查询出符合标准的电话本记录,最后将这些数据都显示在一个

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()){
            //取得联系人名字
            int nameFieldColumnIndex = cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME);
            String contact = cursor.getString(nameFieldColumnIndex);
            //取得电话号码
            int numberFieldColumnIndex = cursor.getColumnIndex(PhoneLookup.NUMBER);
            String number = cursor.getString(numberFieldColumnIndex);
            string += (contact+":"+number+"\n");
        }
         cursor.close();
        //设置TextView 显示的内容
        tv.setText(string);
        //显示到屏幕
        setContentView(tv);
    }
}

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

转载于:https://my.oschina.net/zhangjie830621/blog/97770

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值