首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ContactsContract在索尼experia不起作用

ContactsContract在索尼experia不起作用
EN

Stack Overflow用户
提问于 2015-11-04 07:07:39
回答 1查看 63关注 0票数 1

我正在尝试从电话簿导入联系人详细信息到我的应用程序!我可以导入几乎所有的电话联系详细信息(Jellybean,Kitkat,棒棒糖)。但是当我在索尼Experia(kitkat)测试时,光标不包含任何行。可能是什么原因?我试了很多,但没能解决这个问题。这是示例代码,

代码语言:javascript
复制
 Cursor phones = null;
 phones = context.getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, new String[]
 { ContactsContract.CommonDataKinds.Phone.NUMBER,
  ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,
  ContactsContract.CommonDataKinds.Phone.PHOTO_THUMBNAIL_URI
  },
  ContactsContract.CommonDataKinds.Phone.NUMBER, null, null);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-04 15:53:50

您可以使用null作为query()的第三个参数。

您发布的代码实际上可以导致从结果中排除行,这取决于数字的存储方式。将WHERE (data1)添加到查询中,其中data1是存储电话号码的文本列。关于表达式的文档的布尔表达式部分解释了如何在此上下文中计算文本值。

您可以在SQLite外壳中验证这一点,如下所示:

代码语言:javascript
复制
SQLite version 3.8.11.1 2015-07-29 20:00:57
Enter ".help" for usage hints.
sqlite> select 'PASS' where ('8005551212');
PASS
sqlite> select 'PASS' where ('800 555 1212'); -- easier to see number
PASS
sqlite> select 'PASS' where ('+18005551212'); -- E164 format
PASS
sqlite> select 'PASS' where ('(800) 555 - 1212'); -- US national format
# no results
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33515693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档