首先增加权限
<uses-permission android:name="android.permission.READ_CONTACTS" />
在主要的activity中
private TextView myTextView;
private EditText medittext1;
private EditText medittext2;
private Button mbutton;
private static final int PICK_CONTACT_SUNACTIVITY = 2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myTextView = (TextView) findViewById(R.id.textView1);
medittext1 = (EditText) findViewById(R.id.editText1);
medittext2 = (EditText) findViewById(R.id.editText2);
mbutton = (Button) findViewById(R.id.button1);
mbutton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
startActivityForResult(
new Intent(
Intent.ACTION_PICK,
android.provider.ContactsContract.Contacts.CONTENT_URI),
PICK_CONTACT_SUNACTIVITY);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
try {
switch (requestCode) {
case PICK_CONTACT_SUNACTIVITY:
final Uri uriRet = data.getData();
if (uriRet != null) {
try {
Cursor c = managedQuery(uriRet, null, null, null, null);
c.moveToFirst();
String name = c
.getString(c
.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME));
medittext1.setText(name);
// 取得联系人电话
int contactId = c.getInt(c
.getColumnIndex(ContactsContract.Contacts._ID));
Cursor phones = getContentResolver()
.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID
+ "=" + contactId, null, null);
StringBuffer sb = new StringBuffer();
int typePhone, resType;
String numPhone;
if (phones.getCount() > 0) {
phones.moveToFirst();
typePhone = phones
.getInt(phones
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE));
numPhone = phones
.getString(phones
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
resType = ContactsContract.CommonDataKinds.Phone
.getTypeLabelResource(typePhone);
sb.append(getString(resType) + ":" + numPhone
+ "\n");
medittext2.setText(numPhone);
} else {
sb.append("no phone number found");
}
Toast.makeText(MainActivity.this, sb.toString(),
Toast.LENGTH_SHORT).show();
} catch (Exception e) {
myTextView.setText(e.toString());
e.printStackTrace();
}
}
break;
default:
break;
}
} catch (Exception e) {
e.printStackTrace();
}
super.onActivityResult(requestCode, resultCode, data);
}