android 打开相册_安卓系统照片在哪个存储文件中

android 打开相册_安卓系统照片在哪个存储文件中在GoogleNexus7(Version4.4.2)平板出现之前,Intent.ACTION_GET_CONTENT打开相册会返回如下形式的Uri: content://media/external/images/media/3951,  使用ContentResolver查询MediaStore.Images.Media.DATA就可以找文件

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺



     在Google Nexus 7 ( Version 4.4.2 )平板出现之前,Intent.ACTION_GET_CONTENT打开相册会返回如下形式的Uri :

  content://media/external/images/media/3951

  使用ContentResolver查询MediaStore.Images.Media.DATA就可以找文件的URL, 然而在Google Nexus 7 上用同样的方法,却是返回如下Uri :

  content://com.android.providers.media.documents/document/image:3951

  这时使用ContentResolver就会报一些异常出来,提示说是没有权限(如takePersistableUriPermission等),网上也有一些建议方案,给这个Uri加上相应的权限,不过

  效果都不太理想。

     在不断搜索,实践的过程,发现在了有一个比较方便高效的解决问题的方法,分享出来,希望遇到同样问题的码友们能快速解决问题,轻松一下,

     方案如下:

    

  		Intent intent = new Intent();
		intent.addCategory(Intent.CATEGORY_OPENABLE);
		intent.setType("image/*");
		//根据版本号不同使用不同的Action
		if (Build.VERSION.SDK_INT <19) {
			intent.setAction(Intent.ACTION_GET_CONTENT);
		}else {
			intent.setAction(Intent.ACTION_OPEN_DOCUMENT);
		}
		startActivityForResult(intent, REQUEST_CODE);

	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		super.onActivityResult(requestCode, resultCode, data);
		if (requestCode==REQUEST_CODE) {
				if (null!=data) {
					Uri uri = data.getData();
					//根据需要,也可以加上Option这个参数
					InputStream inputStream = getContentResolver().openInputStream(uri);
					Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
			    }
		    } 
	}
     以上方法经不同Android机型测试,均能正常运行,分享出来,希望对码友们有用!
                    

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/194070.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 用idea搭建springboot项目_javaspringboot项目

    用idea搭建springboot项目_javaspringboot项目1.file->new->project2.springinitializr->next点击finish完成生成的文件夹目录如下主要关注三个截图上的3个文件;1.DemoApplication.java是springboot的项目启动类;里面的代码如图所示2.application.properties是springboot的项目配置文件;以前ssm的众多xml配置文件,都可以在这一个文件中配置;当然默认现在这个…

    2025年11月1日
    4
  • webstorm 永久激活方法【2021免费激活】

    (webstorm 永久激活方法)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~3S…

    2022年3月30日
    69
  • 前缀和与差分数组[通俗易懂]

    前缀和与差分数组[通俗易懂]文章目录适合解决的问题差分数组的定义解释借教室(二分加差分数组)适合解决的问题例:n个数,m次操作。每一次操作都给定区间和数值[l,r]+del.最后有q个询问,问[l,r]点的值或者单点查值。注:先进行m个修改操作,后进行查询操作。(离线的区间区间修改问题)差分数组的定义记录当前位置与上一位置数的差值解释原数组a[5]=9,3,5,4,2差分数组b[5]=9,-6,2,…

    2022年6月5日
    38
  • vue(20)生命周期函数「建议收藏」

    vue(20)生命周期函数「建议收藏」生命周期函数生命周期函数代表的是Vue实例,或者是Vue组件,在网页中各个生命阶段所执行的函数。生命周期函数可以分为创建阶段和运行期间以及销毁期间。其中创建期间的函数有beforeCreate、c

    2022年8月7日
    7
  • java解析xml element_java解析XML Node与Element的区别(推荐)「建议收藏」

    java解析xml element_java解析XML Node与Element的区别(推荐)「建议收藏」对Element和Node有困惑是因为对xml整个结构不了解,以下作为一个简要概述:以下图为w3c.org网站的xml文档树图:从上图可以看出,一个xml文档由元素节点,属性节点,文本节点构成,其中bookstore被称为文档元素或根元素,也是一个元素节点XMLDOM是这样规定一个节点的XML文档中的每个成分都是一个节点。整个文档是一个文档节点即Document节点。在java中Doc…

    2022年5月4日
    122
  • oracle dmp导入导出_oracle导出数据

    oracle dmp导入导出_oracle导出数据Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用……Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp…

    2025年6月28日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号