与联系人地址android分别获取Region,State,PostCode

Dav*_*vid 5 performance android android-contentresolver android-contentprovider android-contacts

我在从设备联系人获取地址时遇到问题。通讯录应用程序随Android设备的不同而不同。例如,据我所见,联想中的联系人应用程序已分隔字段以输入街道,区域,邮政编码等,但我的nexus7和moto x中的联系人应用程序只有一个字段作为地址。在我的应用中,我有单独的文本视图来显示区域,州和邮政编码。我在onActivityResult中使用了以下代码。

if(resultCode == RESULT_OK){
    Uri contactData = intent.getData();
    Cursor c = getContentResolver().query(contactData, null, null, null, null);
    if (c.moveToFirst()) {
        //to get full address
        //String address = c.getString(c.getColumnIndexOrThrow(ContactsContract.CommonDataKinds.StructuredPostal.FORMATTED_ADDRESS));
        String name = c.getString(c.getColumnIndexOrThrow(ContactsContract.CommonDataKinds.StructuredPostal.DISPLAY_NAME));
        String Street = c.getString(c.getColumnIndexOrThrow(ContactsContract.CommonDataKinds.StructuredPostal.STREET));
        String City = c.getString(c.getColumnIndexOrThrow(ContactsContract.CommonDataKinds.StructuredPostal.CITY));
        String State = c.getString(c.getColumnIndexOrThrow(ContactsContract.CommonDataKinds.StructuredPostal.COUNTRY));
        String Zipcode = c.getString(c.getColumnIndexOrThrow(ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE));
        String District = c.getString(c.getColumnIndexOrThrow(ContactsContract.CommonDataKinds.StructuredPostal.REGION));

        System.out.print("name----" + name);
        System.out.print("Street----" + Street);
        System.out.print("City----" + City);
        System.out.print("State----" + State);
        System.out.print("Zipcode----" + Zipcode);
        System.out.print("District----" + District);
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是我在字符串“ Street”中获取了整个地址。示例街---- 123,ABC街,xyz,123456。其余的City,State等为空。有人对此有解决方案吗?