contentResolver.query(ContactsContract.Contacts.CONTENT_URI.



我在华为P8上测试我的应用程序时遇到了奇怪的行为。在模拟器(安卓版本4,5,6,7(和华硕(android 6(和三星Galaxy S2(Android 4.2(上一切正常。

以下步骤适用于物理设备和模拟器。调用contentResolver.query()后,我得到一个光标,其中包含设备的所有联系人。

  1. 我打开我的应用
  2. 我打电话给contentResolver.query(ContactsContract.Contacts.CONTENT_URI...);

以下步骤适用于除我的华为P8以外的所有地方;使用我的华为P8,只有使用它,我才能获得0计数光标

  1. 我打开我的应用
  2. 在我的应用中,我打开了一个Intent以在设备上添加新联系人
  3. 我添加新联系人或关闭活动而不添加联系人
  4. 我打电话给contentResolver.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);

这是我在设备上获取联系人的方式:

ContentResolver contentResolver = getBaseContext().getContentResolver();    
Cursor cursor =  contentResolver.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);

这就是我从我的应用程序打开活动以在设备上添加新联系人的方式

Intent intent = new Intent(Intent.ACTION_INSERT, ContactsContract.Contacts.CONTENT_URI);
intent.putExtra("finishActivityOnSaveCompleted", true);
startActivityForResult(intent, 101);

似乎在调用new Intent(Intent.ACTION_INSERT, ContactsContract.Contacts.CONTENT_URI)后,联系人表被"锁定"。

我是否必须以某种方式"关闭"意图才能查询ContactsContract.Contacts.CONTENT_URI

重要提示:例如,如果我没有打电话给Intent.ACTION_CALLIntent.ACTION_INSERT,我没有遇到任何问题,并且我能够成功查询ContactsContract.Contacts.CONTENT_URI。因此,问题是在华为P8上Intent.ACTION_INSERT和查询ContactsContract.Contacts.CONTENT_URI后"调用"。

谢谢你。

(为了完整起见,我将对此做出回答(

这可能是设备错误,请在其他设备上尝试相同的代码。

相关内容

  • 没有找到相关文章

最新更新