获取系统通讯录联系人

效果图:


获取系统通讯录联系人_第1张图片
PickContact.jpg

01 layout: activity_main.xml



    
    
        
        
        
        
    
    
        
        
        
    

02 activity: MainActivity.java

public class MainActivity extends Activity implements OnClickListener {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        intiUI();
    }
    private void intiUI() {
        ImageView iv_contact = (ImageView) findViewById(R.id.iv_contact);
        iv_contact.setOnClickListener(this);
    }
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.iv_contact:
            // 打开系统通讯录界面
            startActivityForResult(new Intent(Intent.ACTION_PICK,
                    ContactsContract.Contacts.CONTENT_URI), 0);
            break;
        }
    }

    // 获取联系人界面返回结果
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == Activity.RESULT_OK) {
            ContentResolver contentResolver = getContentResolver();
            // 获取联系人
            Uri contactData = data.getData();
            Cursor cursor = contentResolver.query(contactData, null, null, null, null);
            cursor.moveToFirst();
            String username = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
            String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
            // 获取电话号码
            Cursor phoneCursor = contentResolver.query(
                                            ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                                            null,
                                            ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId,
                                            null, null);
            phoneCursor.moveToFirst();
            String usernumber = phoneCursor.getString(phoneCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
            usernumber = usernumber.replace(" ", "").replace("-", "");
            phoneCursor.close();
            cursor.close();
            // 设置返回结果
            EditText et_name = (EditText) findViewById(R.id.et_name);
            EditText et_phone = (EditText) findViewById(R.id.et_phone);
            et_name.setText(username);
            et_phone.setText(usernumber);
        }
    }
}

03 在AndroidManifest.xml中添加permission


你可能感兴趣的:(获取系统通讯录联系人)