我在华为P8 上测试我的应用时遇到了奇怪的行为。一切都适用于模拟器(Android版本4,5,6,7)和华硕(android 6)和三星Galaxy S2 (Android 4.2)。
以下步骤适用于物理设备和模拟器。在调用contentResolver.query()
之后,我得到了一个包含我设备所有联系人的光标。
contentResolver.query(ContactsContract.Contacts.CONTENT_URI...);
除华为P8 外,以下步骤无处不在;用我的华为P8 ,只有它,我得到0计数光标
Intent
在设备上添加新联系人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)
后,联系人表被锁定了#34;
我必须"关闭"那个意图能够查询ContactsContract.Contacts.CONTENT_URI
?
重要提示:例如,如果代替Intent.ACTION_INSERT
我致电Intent.ACTION_CALL
我没有遇到任何问题,而且我能够成功查询ContactsContract.Contacts.CONTENT_URI
。所以,问题是"呼叫" Intent.ACTION_INSERT
以及在华为P8上查询ContactsContract.Contacts.CONTENT_URI
之后。
谢谢你。
答案 0 :(得分:0)
(为了完整起见,我将回答这个问题)
这可能是设备错误,请在其他设备上尝试相同的代码。