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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 圆周率1千亿位_圆周率十亿位

    圆周率1千亿位_圆周率十亿位展开全部3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852…

    2025年11月8日
    3
  • 划重点!关于缓冲区溢出攻击,这份防范策略一定要收好!

    划重点!关于缓冲区溢出攻击,这份防范策略一定要收好!一、缓冲区溢出攻击的基本概念缓冲区溢出是一种非常普遍、非常危险的漏洞,在各种操作系统、应用软件中广泛存在。利用缓冲区溢出攻击,可以导致程序运行失败、系统宕机、重新启动等后果。更为严重的是,可以利用它

    2022年6月30日
    33
  • GNU make manual 翻译( 一百一十八)

    GNU make manual 翻译( 一百一十八)

    2022年3月12日
    53
  • springboot框架简介_springboot工作原理

    springboot框架简介_springboot工作原理springboot介绍1、springboot概述springboot对spring的缺点进行改善和优化,基于约定优化配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发效率,也可以缩短项目周期。2、springboot特点为基于spring开发提供更快的入门体验。开箱即用,不需要代码生成,也不需要xml配置,同时也可以修改默认值来满足特定的需求。提供了一些大型项目中常见的非功能特性,如嵌入式服务器、安全、指标,健康检测、外部

    2022年8月20日
    8
  • MySQL允许root远程登录[通俗易懂]

    MySQL允许root远程登录[通俗易懂]新安装的数据库只能localhost访问??是不是很苦逼下面介绍如何允许远程访问root1.“试一下”能否远程登录&gt;mysql-uroot-p-h10.0.42.180答案是否定的。那就开始进行设置吧2.登录数据库,默认本地访问&gt;mysql-uroot-p3.切换mysql数据库mysql&gt;usem…

    2022年6月17日
    33
  • 工具帮助达到高潮_php代码用什么工具

    工具帮助达到高潮_php代码用什么工具网站挂马检测工具,网站被挂马在线检测工具作者:dthost|时间:2015-09-06|9,672次阅读做网站时间比较长的老站长都应该知道,网站最担心的事情就是网站被挂马,网站被挂马后,会被安全联盟列入名单,所有的安全软件以及联盟,都会提示这个网站谨慎访问,那么我们如何查到这些挂马,从而删除,但是问题来了,我们怎么来发现这些挂马呢?别给我说那些老站长才知道的技术,我现在一点会需要怎么办呢?首…

    2022年9月30日
    3

发表回复

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

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