首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在HTC10上使用contentResolver检索安卓联系人不返回任何结果

可能是由于以下几个原因导致的:

  1. 权限问题:在Android系统中,访问联系人需要获取READ_CONTACTS权限。请确保在应用的AndroidManifest.xml文件中添加了以下权限声明:<uses-permission android:name="android.permission.READ_CONTACTS" />另外,还需要在运行时动态请求权限,以确保用户授权了该权限。
  2. 查询条件错误:使用contentResolver进行联系人检索时,需要指定正确的查询条件。通常情况下,可以使用ContactsContract.Contacts.CONTENT_URI作为查询的URI,然后使用ContentResolver.query()方法执行查询操作。例如:Uri uri = ContactsContract.Contacts.CONTENT_URI; String[] projection = {ContactsContract.Contacts.DISPLAY_NAME}; String selection = null; String[] selectionArgs = null; String sortOrder = null; Cursor cursor = getContentResolver().query(uri, projection, selection, selectionArgs, sortOrder);上述代码将返回所有联系人的显示名称。
  3. HTC10特定问题:由于不同的设备厂商可能对Android系统进行了定制和优化,因此在某些特定设备上可能存在一些兼容性问题。在HTC10上遇到联系人检索不返回结果的问题,可能是由于设备自身的限制或问题导致的。建议尝试在其他设备上进行相同的操作,以确定是否是HTC10特定的问题。

总结:

在HTC10上使用contentResolver检索安卓联系人不返回任何结果可能是由于权限问题、查询条件错误或设备特定问题导致的。请确保已经获取了读取联系人的权限,并使用正确的查询条件进行操作。如果问题仍然存在,建议尝试在其他设备上进行相同的操作,以确定是否是HTC10特定的问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Android开发笔记(五十四)数据共享接口ContentProvider

    前面几节介绍了进程间通信的几种方式,包括消息包级别的Messenger、接口调用级别的AIDL、启动页面/服务级别的Notification,还有就是本节这个数据库级别的ContentProvider。 ContentProvider为存取数据提供统一的接口,它让不同APP之间得以共享数据。ContentProvider类本身是个服务端的数据存取接口,主要操作类似SQLite,也都提供了如下常见的数据库管理API: query : 查询数据。 insert : 插入数据。 update : 更新数据。 delete : 删除数据。 getType : 获取数据类型。 实际开发中,APP很少会开放数据接口给其他应用,所以ContentProvider类作为服务端接口反而基本用不到。Content组件中能够用到的场合,基本上是APP想要使用系统的手机通讯数据,比如查看联系人/短信/彩信/通话记录,以及对这些通讯信息进行增删改。

    02

    Android学习--跨程序共享数据之内容提供其探究

    跨程序共享数据之内容提供器,这是个什么功能?看到这个名称的时候最能给我们提供信息的应该是“跨程序”这个词了,是的重点就是这个词,这个内容提供器的作用主要是用于在不同的引用程序之间实现数据共享的功能,它提供了一完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访问的数据的安全性,在目前使用内容提供器是Android实现跨程序共享数据的标准方式。不同于文件存储和SharePreferences存储中的两种全局可读性操作模式,内容提供器可以选择只对那一部分数据进行共享,从而保证我们程序中的隐私数据不糊有泄漏的风险。

    03
    领券