在選擇相冊時,使用Intent.ACTION_GET_CONTENT方式,而後在onActivityResult中經過getData()獲得uri,再經過ContentResolver去獲取Cursor對象,大部分機型都沒有問題。可是在用小米note測試出現了選擇了照片返回,能獲取uri,可是在獲取Cursor對象的時候獲得的Cursor對象是null的問題。代碼是這樣的:測試
Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("image/*"); startActivityForResult(intent, requestCode);
onActivityResult中是這樣的:this
if (resultCode == RESULT_OK) { Uri uri = data.getData(); ContentResolver cr = this.getContentResolver(); Cursor c = cr.query(uri, null, null, null, null); if (c != null) { ... ... } }
在Cursor c = cr.query(uri, null, null, null, null);這裏的時候獲得的Cursor對象爲空。(具體什麼問題,目前還沒搞清楚)spa
雖然沒搞清楚緣由,可是問題仍是得解決。。。因而,換了一種Intent方式Intent.ACTION_PICK,問題解決。對象
代碼以下:get
Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(intent, requestCode);
雖然問題解決了,可是不知道是什麼緣由,因此特此記錄,等之後搞清楚了再更新。it
後面測試了一下,好像是寫了 intent.setType("image/*"); 這句代碼就會出現這個問題。request