Android 跳转到系统联系人获取姓名和手机号

来源:互联网 发布:redis 缓存数据库表 编辑:程序博客网 时间:2024/05/22 02:17

所需权限:

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

跳转:

        Uri uri =ContactsContract.Contacts.CONTENT_URI;        Intent intent = new Intent(Intent.ACTION_PICK,uri);        startActivityForResult(intent,0);

接收回调:

    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        super.onActivityResult(requestCode, resultCode, data);        if (resultCode == Activity.RESULT_OK) {            if (requestCode == 0) {                Uri uri=data.getData();                String[] contacts=getPhoneContacts(uri);                Log.d(TAG, "姓名:"+contacts[0]+" "+"手机号:"+contacts[1]);            }        }    }

getPhoneContacts()方法:

   private String[] getPhoneContacts(Uri uri){        String[] contact=new String[2];        //得到ContentResolver对象        ContentResolver cr = getContentResolver();        //取得电话本中开始一项的光标        Cursor cursor=cr.query(uri,null,null,null,null);        if(cursor!=null){            cursor.moveToFirst();            //取得联系人姓名            int nameFieldColumnIndex=cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);            contact[0]=cursor.getString(nameFieldColumnIndex);            //取得电话号码            String ContactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));            Cursor phone = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,                    ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + ContactId, null, null);            if(phone != null){                phone.moveToFirst();                contact[1] = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));            }            phone.close();            cursor.close();        }        else{            return null;        }        return contact;    }

本帖转自: http://blog.csdn.net/u014733374/article/details/44835325


0 1