Reputation: 405
I am trying to get Android contact postal information using StructuredPostal
. I have tried a number of different things, but I can't seem to get the individual fields of StructuredPostal
to have any value other than null.
I can see the contact has the correct address in StructuredPostal.FORMATTED_ADDRESS
. However, individual fields such as StructuredPostal.REGION
or StructuredPostal.COUNTRY
are all null.
Here's my current code:
private final String[] PROJECTION_ADDRESS = {
ContactsContract.Contacts._ID,
ContactsContract.CommonDataKinds.StructuredPostal.COUNTRY,
ContactsContract.CommonDataKinds.StructuredPostal.REGION,
ContactsContract.CommonDataKinds.StructuredPostal.CITY,
ContactsContract.CommonDataKinds.StructuredPostal.FORMATTED_ADDRESS
};
Cursor addressCursor = context.getContentResolver().query(
ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_URI,
PROJECTION_ADDRESS,
ContactsContract.CommonDataKinds.StructuredPostal.CONTACT_ID + " = '" + contactId + "' AND " +
ContactsContract.CommonDataKinds.StructuredPostal.MIMETYPE + " = '" +
ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE + "'",
null,
ContactsContract.Data._ID
);
int regionIndex = addressCursor.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.REGION);
int countryIndex = addressCursor.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.COUNTRY);
int addressIndex = addressCursor.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.FORMATTED_ADDRESS);
while (addressCursor.moveToNext()) {
String region = addressCursor.getString(regionIndex);
String country = addressCursor.getString(countryIndex);
String address = addressCursor.getString(addressIndex);
}
I can see the formatted address has "47 Main Street, Anytown, AL 00001, USA".
Why can't I get the individual address items?
Upvotes: 0
Views: 25