需求:
一个edittext 一个button,点击button转到系统通讯录,选中其中一个通讯录item返回当前界面且把
选中的联系人号码用户名显示在edittext上
代码:
- package com.example.contactdemo;
- import android.app.Activity;
- import android.content.ContentResolver;
- import android.content.Intent;
- import android.database.Cursor;
- import android.net.Uri;
- import android.os.Bundle;
- import android.provider.ContactsContract;
- import android.view.View;
- import android.widget.EditText;
- public class MainActivity extends Activity {
- EditText text;
- String username,usernumber;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- text = (EditText)findViewById(R.id.number);
- }
- public void click(View v){
- startActivityForResult(new Intent(
- Intent.ACTION_PICK,ContactsContract.Contacts.CONTENT_URI), 0);
- }
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- super.onActivityResult(requestCode, resultCode, data);
- if (resultCode == Activity.RESULT_OK) {
- ContentResolver reContentResolverol = getContentResolver();
- Uri contactData = data.getData();
- @SuppressWarnings("deprecation")
- Cursor cursor = managedQuery(contactData, null, null, null, null);
- cursor.moveToFirst();
- username = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
- String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
- Cursor phone = reContentResolverol.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
- null,
- ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId,
- null,
- null);
- while (phone.moveToNext()) {
- usernumber = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
- text.setText(usernumber+" ("+username+")");
- }
- }
- }
- }
布局:
activity_main.xml
- <LinearLayout 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:orientation="vertical"
- >
- <EditText
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:hint="输入电话号码"
- android:id="@+id/number"
- />
- <Button
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="从通讯录中获取"
- android:onClick="click"
- />
- </LinearLayout>
添加权限:
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />