如何获取联系人的地址字段?

How to get the address field of a contact?

在我的应用程序中,我想获取所选联系人的地址字段。我设法得到了联系人姓名,但我不知道如何得到地址。这是我的代码:

@Override
public void onActivityResult(int reqCode, int resultCode, Intent data) {
    super.onActivityResult(reqCode, resultCode, data);

    switch (reqCode) {
        case (PICK_CONTACT) :
            if (resultCode == Activity.RESULT_OK) {
                Uri contactData = data.getData();
                Cursor c =  getActivity().getContentResolver().query(contactData, null, null, null, null);
                c.moveToFirst();
                String name = c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
                Log.i(TAG, "name contact: "+ name);
            }
        break;
    }
}

非常感谢!

ContactsContract.CommonDataKinds.StructuredPostal.CITY ContactsContract.CommonDataKinds.StructuredPostal.STREET ContactsContract Structured Postal docs 请在来这里提问之前检查开发文档。

尝试关注

String id = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
Cursor address_cursror = getContentResolver().query(ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_URI, null, ContactsContract.CommonDataKinds.StructuredPostal.CONTACT_ID + " = ?", new String[] { id }, null);
                while (address_cursror.moveToNext())
                {

                    String name = address_cursror.getString(address_cursror.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.DISPLAY_NAME));
                    String street = address_cursror.getString(address_cursror.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.STREET));
                    String state = address_cursror.getString(address_cursror.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.REGION));
                    String zip = address_cursror.getString(address_cursror.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE));
                    String city = address_cursror.getString(address_cursror.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.CITY));
            }

            } while (cursor.moveToNext());