2016-12-23 3 views
0

ユーザー(Action.Pick)が選択した1人の連絡先のすべてのデータを取得する必要があります。私は、developer.android.comの提案にしたがって、LOOKUP KEYを使用したいと思います。ドキュメントで示唆されているように、Loaderなどを作成せずに簡単なクエリで行うことはできますか?Androidは検索キーを使用して連絡先のデータを取得します

答えて

0

私は自分のアプリケーションのために、この方法で書きました:データは単にカーソルからデータを読み取る取得するには

public static Cursor getContactCursorByLookUpKey(Context context,String lookUpKey) 
{ 
    ContentResolver contentResolver = context.getContentResolver(); 
    Uri lookupUri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_LOOKUP_URI,lookUpKey); 
    return contentResolver.query(lookupUri,null,null,null,null); 
} 

を。たとえば:あなたはREAD_CONTACTS権限を持っている場合

Cursor data = ContactManager.getContactCursorByLookUpKey(ContactDetailsActivity.this,lookUpKey); 
String name = data.getString(data.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); 
String photoPath = data.getString(data.getColumnIndex(ContactsContract.Contacts.PHOTO_URI)); 
+0

lookUpKeyが変更されるとどうなりますか? – toofoo

0

あなたは、直接ContentResolverを使用して連絡先プロバイダを照会することができます。生の連絡先の詳細(電話、電子メールなど)が複数行あるカーソルが表示されます。それらを読むためにカーソル上を繰り返し、カーソルを閉じることを忘れないでください。

関連する問題