在选择相册时,使用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