可能是由于以下几个原因导致的:
- 权限问题:在Android系统中,访问联系人需要获取READ_CONTACTS权限。请确保在应用的AndroidManifest.xml文件中添加了以下权限声明:<uses-permission android:name="android.permission.READ_CONTACTS" />另外,还需要在运行时动态请求权限,以确保用户授权了该权限。
- 查询条件错误:使用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);上述代码将返回所有联系人的显示名称。
- HTC10特定问题:由于不同的设备厂商可能对Android系统进行了定制和优化,因此在某些特定设备上可能存在一些兼容性问题。在HTC10上遇到联系人检索不返回结果的问题,可能是由于设备自身的限制或问题导致的。建议尝试在其他设备上进行相同的操作,以确定是否是HTC10特定的问题。
总结:
在HTC10上使用contentResolver检索安卓联系人不返回任何结果可能是由于权限问题、查询条件错误或设备特定问题导致的。请确保已经获取了读取联系人的权限,并使用正确的查询条件进行操作。如果问题仍然存在,建议尝试在其他设备上进行相同的操作,以确定是否是HTC10特定的问题。