Android 由data 获取联系人信息。
//跳转到联系人界面
private void pickContact() {
// Create an intent to "pick" a contact, as defined by the content provider URI
Intent intent = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI);
startActivityForResult(intent, PICK_CONTACT_REQUEST);
}
//返回来的Intent中的data数据是用户选择的联系人的Uri ,表示资源的位置,以便ContentProvider去查找(query)资源(The URI, using the content:// scheme, for the content to retrieve)
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == Activity.RESULT_OK && requestCode == PICK_CONTACT_REQUEST) {
System.out.println("data.getData() " + data.getData());
// 输出为: content://com.android.contacts/contacts/lookup/0r5-385C3A525C/5
Cursor cursor = getContentResolver().query(data.getData(), new String[] {Contacts.DISPLAY_NAME}, null, null, null);
if (cursor.moveToFirst()) {
int columnIndex = cursor.getColumnIndex(Contacts.DISPLAY_NAME);
String name = cursor.getString(columnIndex);
System.out.println(name);
}
}
}