Android 由data 获取联系人信息

2014-11-24 07:43:27 · 作者: · 浏览: 2

//跳转到联系人界面

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);

}

}

}