android – 查询联系人 – SOMETIMES返回空光标

android – 查询联系人 – SOMETIMES返回空光标,第1张

概述我正在尝试查询联系人的显示名称: @Overridepublic void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { case REQ_CODE_PICK_CONTACT: if (resultCode == Activity.RE 我正在尝试查询联系人的显示名称:

@OverrIDepublic 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);            if (c != null && c.movetoFirst()) {                //get the contact name            }        }        break;    }}

现在问题是:

对于某些联系人,光标返回空,我不明白为什么.
我检查了contactUri的值,它看起来像:content://com.androID.contacts/data/3032

对于我尝试过的所有类型的联系人,Uri看起来都一样 – facebook,Google,phone等.

对于某些联系人,游标返回一个结果,这很好,我可以提取名称.但对于其他人来说,即使ContentUri完全相同,它仍然是空的,它起源于Intent.getData().

以下是一些可能与这个奇怪问题有关的事实:

>所有具有空光标的联系人都是Facebook联系人. Uri看起来像上面.
>并非所有的facebook联系人都会导致这种情况:我有HTC One X,如果 *** 作系统发现它们之间的关系(例如,如果它检测到gmail帐户和facebook的类似电话号码),我可以在电话簿上“链接”联系人它意味着我要在它们之间“联系”).只有非“已关联”的Facebook联系人才会返回空白.

现在我的想法.以前有人遇到过这个吗?

提前致谢.

解决方法 我在HTC Incredible S上遇到了同样的问题,这让我觉得它可能是HTC手机的问题.无论如何,我最终使用的解决方法是从您使用数据意图返回的包中检索电话号码.

final String phoneNumber = data.getStringExtra("androID.intent.extra.PHONE_NUMBER");

此时,你需要做一些“反向逻辑”来使用PhoneLookup获取联系人的其他数据.

总结

以上是内存溢出为你收集整理的android – 查询联系人 – SOMETIMES返回空光标全部内容,希望文章能够帮你解决android – 查询联系人 – SOMETIMES返回空光标所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1124764.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存