連絡先の表示名を照会しようとしています:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case REQ_CODE_PICK_CONTACT:
if (resultCode == Activity.RESULT_OK) {
Uri contactUri = data.getData();
ContentResolver cr = getActivity().getContentResolver();
Cursor c = cr.query(contactUri, null, null, null, null);
if (c != null && c.moveToFirst()) {
//get the contact name
}
}
break;
}
}
ここに問題があります:
一部の連絡先では、カーソルが空に戻りますが、その理由がわかりません。の値を確認しましたcontactUri
。次のようになります:content://com.android.contacts/data/3032
Uriは、私が試したすべてのタイプの連絡先(Facebook、Google、電話など)で同じように見えます。
一部の連絡先では、カーソルが結果を返します。これは適切であり、名前を抽出できます。しかし、他の人にとっては、ContentUriがまったく同じであるにもかかわらず、それはどういうわけか空です。これはIntent.getData()から発生しました。
この奇妙な問題と関係があるかもしれないいくつかの事実はここにあります:
空のカーソルを持つすべての連絡先はFacebookの連絡先です。ウリは上のように見えます。
すべてのFacebookの連絡先がこれを引き起こすわけではありません:私はHTC One Xを持っています。これは、電話帳で、OSが連絡先間の関係を見つけた場合(たとえば、GmailアカウントとFacebookアカウントの類似の電話番号を検出した場合)に連絡先を「リンク」できます。 、それは私がそれらの間で「リンク」することを提案します)。「リンク」されていないFacebookの連絡先のみが空になります。
今はアイデアが足りません。誰かが以前にこれに遭遇したことがありますか?
前もって感謝します。