0

我有一个发送到联系人活动的意图,然后主活动在此回调中获取结果。问题是该列始终为-1。话虽这么说,我如何获得联系人姓名?

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == PICK_CONTACT_REQUEST) {
        if (resultCode == RESULT_OK) {
            Uri contactUri = data.getData();
            String[] projection = {Phone.NUMBER};
            Cursor cursor = getContentResolver().query(contactUri, 
                        projection, null, null, null);
            if (cursor.moveToFirst()) {
            int column = cursor.getColumnIndex(
                ContactsContract.PhoneLookup.DISPLAY_NAME);
            if (column >= 0) {
                String name = cursor.getString(column);
                addString(name);
            } else {
                addString("Could Not Get User Name");
                }
            }
        }
    }

}

4

1 回答 1

1

您的投影是String[] projection = {Phone.NUMBER};这样的,光标将只有这个列名,您需要使用String[] projection = {Phone.NUMBER, ContactsContract.PhoneLookup.DISPLAY_NAME};才能访问 Display_Name。

还要确保 ContentProvider 返回您想要的信息。

于 2013-07-11T19:51:16.830 回答