从android中的联系人获取地址详细信息

时间:2014-04-04 12:33:15

标签: android android-contacts contactscontract

我正在尝试访问从联系人选择器意图中选择的人员的联系方式。

这是我的联系人的样子:

enter image description here

以下是我用来打开联系人选择器的代码:

Intent pickContactIntent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(pickContactIntent, PICK_CONTACT_REQUEST);

现在,我可以使用以下API获取电话号码和电子邮件:

android.provider.ContactsContract.CommonDataKinds.Email;
android.provider.ContactsContract.CommonDataKinds.Phone;

但我无法获取存储的地址。我想获得与之关联的地址值和自定义标记。

感谢任何帮助。

1 个答案:

答案 0 :(得分:4)

如果您有联系人ID并且想要获取邮政地址,请使用:

     Uri postal_uri = ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_URI;
     Cursor postal_cursor  = getContentResolver().query(postal_uri,null,  ContactsContract.Data.CONTACT_ID + "="+contactId.toString(), null,null);
      while(postal_cursor.moveToNext())
        {
         String Strt = postal_cursor.getString(postal_cursor.getColumnIndex(StructuredPostal.STREET));
         String Cty = postal_cursor.getString(postal_cursor.getColumnIndex(StructuredPostal.CITY));
         String cntry = postal_cursor.getString(postal_cursor.getColumnIndex(StructuredPostal.COUNTRY));
        } 
        postal_cursor.close();           

http://gabrielaradu.com/?p=367

https://stackoverflow.com/a/13471370/2480911