기기의 연락처 정보에서 우편 주소를 검색 할 수있는 앱이 있습니다. 아래 주소와 같은 코드를 사용하여 연락처 API를 사용하여 주소, 우편 번호, 도시 등의 정보를 검색합니다. 그런 다음 주소를 별도의 줄에 표시하고 사용자가이를 수락하거나 원하는 경우 변경할 수 있습니다.Honeycomb/ICS의 주소 형식
String where = ContactsContract.Data.CONTACT_ID + " = ? AND " + ContactsContract.Data.MIMETYPE + " = ?";
String[] params = new String[]{id, ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE};
Cursor addrCur = getContentResolver().query(ContactsContract.Data.CONTENT_URI, null, where, params, null);
...
while(addrCur.moveToNext()) {
String street = addrCur.getString(addrCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.STREET));
String city = addrCur.getString(addrCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.CITY));
String state = addrCur.getString(addrCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.REGION));
String postalCode = addrCur.getString(addrCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE));
String country = addrCur.getString(addrCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.COUNTRY));
...
}
addrCur.close();
이 안드로이드 2.2/2.3와 함께 잘 작동했지만 나는 3.x 및 반환 된 전체 주소가 STREET 필드에 줄 바꿈 하나의 문자열로 포맷 할 수있는 이상에서 나타났습니다. 이것은 연락처/주소가 장치에 생성 될 때 발생합니다. Gmail의 연락처를 동기화하면 주소가 올바르게 검색됩니다 (동기화 된 정보가 올바른 입력란에 저장되어있는 것 같습니다). 이러한 유형의 주소에 대한 개별 데이터 요소 (거리, 우편 번호 등)를 가져올 방법이 없습니다. 이것이 가능한가? 사용할 필요가있는 새로운 API가 있습니까?