簡體   English   中英

如果在Intent.ACTION_INSERT之后調用contentResolver.query(ContactsContract.Contacts.CONTENT_URI…),則返回0個游標

[英]contentResolver.query(ContactsContract.Contacts.CONTENT_URI…) return 0 count Cursor if called after Intent.ACTION_INSERT

Huawei P8上測試我的應用程序時,我的行為很奇怪。 在模擬器(Android版本4、5、6、7), ASUS (Android 6)和Samsung Galaxy S2 (Android 4.2)上,一切正常。

以下步驟適用於物理設備和仿真器。 調用contentResolver.query()我得到一個具有設備所有聯系人的游標。

  1. 我打開我的應用
  2. 我叫contentResolver.query(ContactsContract.Contacts.CONTENT_URI...);

除了在我的Huawei 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_INSERT我打電話Intent.ACTION_CALL我沒有得到任何的問題,我能夠成功地查詢ContactsContract.Contacts.CONTENT_URI 因此,問題是在華為P8上查詢ContactsContract.Contacts.CONTENT_URI之后“調用” Intent.ACTION_INSERT

謝謝你的配合。

(為完整起見,我將其作為答案)

這可能是設備錯誤,請在其他設備上嘗試相同的代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM