从配置文件中获取用户地址

时间:2013-09-13 11:11:15

标签: android

现在,我正在尝试从个人资料中获取用户地址。

我的源代码在这里

String[] projection ={ ContactsContract.CommonDataKinds.StructuredPostal.FORMATTED_ADDRESS };

Cursor mCursor = getContentResolver().query(Uri.withAppendedPath(
        ContactsContract.Profile.CONTENT_URI,
        ContactsContract.Contacts.Data.CONTENT_DIRECTORY),
        projection,
        null,
        null,
        null);

成功获取用户个人资料,“mCursor”从用户个人资料中获取所有信息。 那么有人知道从个人资料中获取地址吗?

1 个答案:

答案 0 :(得分:0)

我找到了自己的方法。 “vnd.android.cursor.item / postal-address_v2”是地址的mimetype。它的类型代表HOME,WORK,OTHER和CUSTOME。您可以从下面的源代码中获取Profile中的地址。但请注意,只有OS4.00及更多版本具有Profile类。

//Colums(address and its type)  
String[] projection = {
    ContactsContract.CommonDataKinds.StructuredPostal.FORMATTED_ADDRESS,
    ContactsContract.CommonDataKinds.StructuredPostal.TYPE,
};

profileCursor = null;

try{
    //make cursor
    profileCursor = getContentResolver().query(
    Uri.withAppendedPath(
    ContactsContract.Profile.CONTENT_URI,
    ContactsContract.Contacts.Data.CONTENT_DIRECTORY),
    projection,
    ContactsContract.CommonDataKinds.StructuredPostal.MIMETYPE + " =? ",
    // This is the mymetype of address
    new String[]{"vnd.android.cursor.item/postal-address_v2"},
    null);

}catch(NoClassDefFoundError e){
    e.printStackTrace();
}