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机型测试,均能正常运行,分享出来,希望对码友们有用!
                    

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 计算机设备问题代码43,设备管理器错误代码(代码43)的六种解决方法

    内容一、“由于此设备存在问题,Windows已将其停止(代码43)”),这是问题的原因原因分析:代码43错误是多个设备管理器错误代码之一。当设备管理器停止硬件设备时,会生成此错误,这可能是由硬件设备或设备驱动程序故障引起的。设备管理器错误代码(代码43)的详细信息可以在设备属性的“设备状态”区域中找到。引起问题的设备将在设备中用感叹号标记)设备管理器,如下图所示:有关如何解决此问题的信息,…

  • intellijidea激活码【最新永久激活】

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

  • ATECC508A芯片开发笔记(一):初识加密芯片

    ATECC508A芯片开发笔记(一):初识加密芯片近年来,随着黑客网络攻击事件频繁发生,网络安全问题亟待解决,同时security方面的软件解决方案也正快速更迭,相关软件开发人员也变得更紧缺。使用传统纯软件的方法实现网络安全加解密、身份认证等算法存在较多缺陷,如执行各类算法的时间、资源消耗较大,并且无法实现密钥等secret的安全存储,这时各类芯片厂商推出了硬件加密芯片来解决上述问题,在增加系统安全性的同时,也极大提高了软件效率。因此针…

  • 嵌入式系统中启动Hostapd

    嵌入式系统中启动Hostapd项目过程中需要添加AP热点的需求,自然会想用到hostapd,具体的不做分析,自行百度,这里主要分析下启动脚本采用的WiFi模组是“博通”公司的AP6255芯片,“博通”公司的wifi芯片AP与STATION切换需要对网卡驱动进行卸载重装,所以配网方式不建议使用AP模式配网,这会造成多次WiFi模式的切换,耗时可能比较严重。不过给出以下方法,开发者可以自行配置,进入…

  • python批量重命名图片序号_python实现图片文件批量重命名「建议收藏」

    python批量重命名图片序号_python实现图片文件批量重命名「建议收藏」本文实例为大家分享了python实现文件批量重命名的具体代码,供大家参考,具体内容如下代码:#-*-coding:utf-8-*-importosclassImageRename():def__init__(self):self.path=’D:/xpu/paper/plate_data’defrename(self):filelist=os.listdir(self.pat…

  • 无人机应用参考文献_无人机应用论文3000字

    无人机应用参考文献_无人机应用论文3000字2019年以后的,相对较新,值得参考

发表回复

您的电子邮箱地址不会被公开。

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