android 由data 获取联系人信息。

来源:互联网 发布:游戏模型提取软件 编辑:程序博客网 时间:2024/06/05 20:56
//跳转到联系人界面
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);
       } 
   } 
}