Android获取联系人姓名和电话

来源:互联网 发布:php-fpm有什么用 编辑:程序博客网 时间:2024/05/01 00:39

1.启动系统选择联系人界面

Intent intent3 = new Intent(Intent.ACTION_PICK,ContactsContract.Contacts.CONTENT_URI);startActivityForResult(intent3, REQUSTCODE);//请求码自己定义

2.重写OnActivityResult方法获取数据

@Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        super.onActivityResult(requestCode, resultCode, data);        switch (requestCode) {        case REQUSTCODE:            if (resultCode == Activity.RESULT_OK) {                Uri conatctData  = data.getData();                Cursor cursor = managedQuery(conatctData, null, null, null, null);                if (cursor.moveToFirst()) {                    String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));                     String name = cursor.getString(cursor.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME)) ;                    String phonenum = "此联系人暂未输入电话号码";                    Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID +"="+contactId, null, null);                    if (phones.moveToFirst()) {                        phonenum = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));                    }                    mPickedContactTV.setText("联系人:"+name + "\n电话:" + phonenum);                    if (VERSION.SDK_INT <14) {                        phones.close();                    }                }                if (VERSION.SDK_INT <14) {//不添加的话Android4.0以上系统运行会报错                    cursor.close();                }            }            break;

3.添加读取通讯录权限

 <!-- 读取联系人权限 -->    <uses-permission android:name="android.permission.READ_CONTACTS"/>
0 0