0

今、プロファイルからユーザーアドレスを取得しようとしています。

私のソースコードはこちら

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」はユーザープロファイルからすべての情報を取得します。それで、プロフィールからアドレスを取得する方法を知っている人はいますか?

4

1 に答える 1

0

自力で入手する方法を見つけました。「vnd.android.cursor.item/postal-address_v2」が住所のMIMEタイプです。そして、そのタイプは、HOME、WORK、OTHER、および CUSTOME を表します。以下のソースコードは、プロファイルからアドレスを取得できます。ただし、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();
}
于 2013-10-09T03:23:18.033 に答える