关于小米note采用Intent.ACTION_GET_CONTENT选择相册问题

血红的双手。 提交于 2020-03-09 10:27:08

在选择相册时,使用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中是这样的:

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对象为空。(具体什么问题,目前还没搞清楚)

虽然没搞清楚原因,但是问题还是得解决。。。于是,换了一种Intent方式Intent.ACTION_PICK,问题解决。

代码如下:

Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, requestCode);

虽然问题解决了,但是不知道是什么原因,所以特此记录,等以后搞清楚了再更新。


后面测试了一下,好像是写了 intent.setType("image/*"); 这句代码就会出现这个问题。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!