Android打开系统相册的问题

2023-05-16




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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android打开系统相册的问题 的相关文章

  • 在 Android 上通话结束时启动活动

    我想在通话结束时启动一项活动 找不到任何对此的参考 我该怎么做 我还没有尝试过这个 但我假设你可以运行一些服务 始终在后台运行 它利用电话状态监听器 http developer android com reference android
  • 如何在android中实现触摸平滑图像橡皮擦?

    我已经从 API 演示中看到了finturePaint java 我想实现触摸平滑橡皮擦 通过在android中触摸移动来擦除部分图像 FingerPaint 告诉我要实现这个 mPaint setXfermode new PorterDu
  • 如何从 SDK 实现每个会话的 Google Places 自动完成功能?

    是否可以从 Android 和 iOS 应用程序的 place sdk 实现基于会话的自动完成 根据 6 月 11 日生效的新 Google 地图框架定价 对自动完成的请求可以分为基于击键 会话的请求 我找不到描述实施步骤的文档 除了这个参
  • Android 中多个蓝牙连接的自定义 UUID

    我有一个 Android 设备作为服务器连接到多个蓝牙 Android 客户端 我了解 UUID 的概念以及它的独特之处 我的问题是 我可以为连接到我的服务器的所有客户端使用相同的 UUID 吗 如果没有 我如何以编程方式为我的客户端生成
  • 如何自定义菜单项的背景颜色?

    我正在尝试定制Toolbar的弹出菜单 现在我无法设置菜单项的背景颜色 我的 styles xml 如下所示
  • Android Studio:XML 布局中的“包装在容器中”

    编辑 XML 布局文件时 Eclipse 有一项称为 包裹在容器中 的功能 重新格式化 gt Android gt 可让您选择一个或多个视图并在其周围包裹您选择的布局 Android Studio中有类似的东西吗 目前正在实施中 问题 69
  • fetchUuidsWithSdp 的奇怪 UUID 逆转

    我有一个在树莓派上运行的 python 蓝牙服务器 使用 PyBluez 我在服务器中使用的uuid是 8f86d132 4ab8 4c15 b8df 0b70cf10ea56 我正在打电话device fetchUuidsWithSdp
  • 通过 WhatsApp 发送消息

    由于我发现了一些较旧的帖子 表明 Whatsapp 不支持此功能 我想知道是否发生了变化 以及是否有办法打开与我通过意图发送的号码进行 Whatsapp 聊天 UPDATE请参阅https faq whatsapp com en andro
  • 自定义首选项中的android首选项水平分隔线?

    我创建了自己的自定义首选项对象来扩展首选项 我创建它们只是因为这些自定义数据类型没有首选项 一切正常 但我的自定义首选项没有相同的外观 因为它们缺少系统首选项对象具有的水平分隔线 我已经查找了创建水平分隔线的代码 但我找不到它是在哪里完成的
  • 如何重定向到 instagram://user?username={username}

    我的 html 页面上有这个链接 可以在特定用户上打开 Instagram 应用程序 a href Link to Instagram Profile a 我一直在寻找自动运行 url instagram user username USE
  • ExoPlayer2 - 如何使 HTTP 301 重定向工作?

    我开始使用 ExoPlayer 来传输一些音频 一切都很顺利 直到我遇到一个带有 301 永久移动 重定向的 URL ExoPlayer2 默认情况下不处理该问题 我已经看过这个线程 https github com google ExoP
  • Android 深度链接至 Instagram 应用

    Instagram 已经发布了 iOS 深层链接的 url 方案 但尚未为 Android 创建文档 有没有办法深入链接到 Android 上的 Instagram 应用程序 以转到 Instagram 应用程序中的特定位置 例如 Inst
  • 在 android 中建立与 MySQL 的池连接

    我需要从我的 Android 应用程序访问 MySQL 数据库 现在所有的工作都通过 DriverManager getConnection url 等等 但我必须从多个线程访问数据库 所以我必须使用连接池 问题1 是 com mysql
  • 如何在谷歌地图android上显示多个标记

    我想在谷歌地图android上显示带有多个标记的位置 问题是当我运行我的应用程序时 它只显示一个位置 标记 这是我的代码 public class koordinatTask extends AsyncTask
  • 对于一个单元格,RecyclerView onBindViewHolder 调用次数过多

    我正在将 RecyclerView 与 GridLayoutManager 一起使用 对于网格中的每个项目 我需要调用 REST api 来检索数据 然后 从远程异步获取数据后 我使用 UIL 加载 显示图像 一切似乎都很好 但我发现 on
  • okhttp 获取失败响应

    我已经在我的 android 客户端中实现了 okhttp 来进行网络调用 当我收到失败响应时 我会收到失败代码以及与该代码相关的文本作为消息 但我没有收到服务器发送给我的自定义失败响应 在我实施的代码中的失败响应中 我收到的消息只是 错误
  • 如何在 Android 中从 WorkManager 取消工作?

    我已经保存了 WorkManagerUUID转换成String在领域数据库中 这是代码 Constraints constraints new Constraints Builder setRequiredNetworkType Netwo
  • Android:无法使用 DbHelper 和 Contract 类将数据插入 SQLite

    public class Main2Activity extends AppCompatActivity private EditText editText1 editText2 editText3 editText4 private Bu
  • 在命令行上卸载 Android SDK 的选定部分

    这与 卸载旧的 Android SDK 版本 https stackoverflow com questions 15182377 uninstall old android sdk versions 除非我想在无头 Linux CI 服务
  • Android:如何从网络异步获取搜索建议?

    我创建了一个可搜索的活动 现在 我想添加从网络服务获取的搜索建议 我想异步获取这些建议 根据添加自定义建议 http developer android com guide topics search adding custom sugge

随机推荐

  • 【运动控制】线性二次型最优控制(LQR)

    1 算法思想 对一个受控系统 xff0c 从一类允许的控制方案中找出一个最优的方案 xff0c 使系统由初始状态转移到目标状态的同时某个特定的性能指标为最优 在运动方程和允许控制范围的约束下 xff0c 对以控制函数和运动状态为变量的性能指
  • IMU与GPS的数据融合

    1 IMU简介 惯性测量单元 xff08 Inertial Measurement Unit xff09 通常由3个加速度计和3个陀螺仪组合而成 xff0c 加速度计和陀螺仪安装在互相垂直的测量轴上 xff0c 这里可以将其输出看作为三个方
  • 卡尔曼滤波算法

    了解过导航 雷达数据处理的必然听过卡尔曼滤波 xff0c 因为最近有项目需求 xff0c 要验证一下卡尔曼滤波对结果的优化程度 xff0c 所以入门学习一下卡尔曼滤波器 毕竟是经典的滤波器 xff0c 网上关于卡尔曼滤波的代码和文章有很多
  • C++STL在算法题中的应用-持续更新

    写洛谷的题 有时候不会总是会去看题解 有的思路很巧妙 需要学习 有的用了很厉害的STL 之前一直在看 现在想想也是要记下来好一点 这个帖子持续更新吧 再见到好用的STL就在这里记下来 1 vector 是个容器很好用 但是我基本没怎么用过
  • 卡尔曼滤波(联邦、一致性卡尔曼滤波)

    在信息融合中经常使用卡尔曼滤波 xff0c 现在我们对其进行讲解 xff1a 百度百科上写到 xff1a 卡尔曼滤波公式如上 这是另一种表述 xff0c 涉及的符号见下表 xff1a 对于联邦卡尔曼滤波 xff1a 对于一致性卡尔曼滤波 x
  • BP神经网络公式推导(西瓜书)自我理解

    公式推导 描述BP神经网络 xff1a 网络包含三层 xff1a 输入层 xff1a 神经元数量为 d d d 个 xff0c 输入为 x i
  • C++ 友元类

    1 在C 43 43 中 xff0c 我们使用类对数据进行了隐藏和封装 xff0c 类的数据成员一般都定义为私有成员 xff0c 成员函数一般都定义为公有的 xff0c 以此提供类与外界的通讯接口 但是 xff0c 有时需要定义一些函数 x
  • 浪潮服务器通过BMC安装银河麒麟OS记录

    浪潮服务器 xff08 X86 xff09 远程安装银河kylin操作系统记录 1 下载麒麟镜像OS 官网下载 xff1a 银河麒麟官网 xff0c 按需申请即可这个是首页 xff0c 不要走错哦 2 通过网络登录BMC 浪潮服务器的默BM
  • K8S 性能优化 - 大型集群 CIDR 配置

    前言 K8S 性能优化系列文章 xff0c 本文为第三篇 xff1a Kubernetes 大型集群 CIDR 配置最佳实践 系列文章 xff1a K8S 性能优化 OS sysctl 调优 K8S 性能优化 K8S APIServer 调
  • 完美实现Ubuntu系统迁移到另一台电脑/服务器

    一 以A电脑的系统向B电脑迁移为例 第一 xff0c 首先进入A电脑根目录并获取权限 命令 xff1a cd sudo su 第二 xff0c 将根目录所需文件打包为backup tar gz放在当前目录下 xff0c 也可以修改路径直接保
  • catkin 创建工作区

    先确定自己的环境变量是否设置正确 export grep ROS 若出现如下的 xff0c 说明是正确的 declare x ROSLISP PACKAGE DIRECTORIES 61 declare x ROS DISTRO 61 in
  • semtcl-信号量的操作

    头文件 include lt sys types h gt include lt sys ipc h gt include lt sys sem h gt 函数 int semctl xff08 int semid xff0c int se
  • 计算机专业保研面试复习笔记——操作系统

    计算机专业保研面试复习笔记 xff1a 计算机专业保研面试复习笔记 数据结构中的重要算法 计算机专业保研面试复习笔记 数据库 计算机专业保研面试复习笔记 操作系统 计算机专业保研面试复习笔记 计算机网络 文章目录 死锁定义原因条件处理方法死
  • 计算机专业保研面试复习笔记——计算机网络

    计算机专业保研面试复习笔记 xff1a 计算机专业保研面试复习笔记 数据结构中的重要算法 计算机专业保研面试复习笔记 数据库 计算机专业保研面试复习笔记 操作系统 计算机专业保研面试复习笔记 计算机网络 文章目录 三种协议五层协议应用层 x
  • 北航计算机学院往年夏令营+考研面试数理题目汇总

    北航计算机学院硕士复试机经 43 面经 xff1a 北航计算机学院往年夏令营 43 预推免机试题目汇总 北航计算机学院往年夏令营 43 考研面试题目汇总 北航计算机学院往年夏令营 43 考研面试数理题目汇总 以下是笔者汇总的北航计算机学院往
  • 【已解决】nvidia-smi报错:NVIDIA-SMI has failed because it couldn’t communicate with the ... 阿里云GPU服务器

    问题描述 如题 xff0c 起因是在阿里云GPU服务器上 xff0c 使用原先正常运行的镜像生成了容器 xff0c 但容器的显卡驱动出问题了 xff0c 使用nvidia smi命令会报错 NVIDIA SMI has failed bec
  • 【ROS】wiki教程总结以及offboard仿真实现过程

    文章目录 概览ROS基本概念文件结构框架节点 node 之间通讯使用图形工具rqt plot xff1a 显示主题上发布的数据的滚动时间图rqt graph创建系统中正在节点间的动态图 xff1a 从头创建一个offboard包 xff0c
  • 光场相机系列-----相机标定

    光场相机系列 相机标定 通过标定相机 xff0c 得到相机的内参与外参 文章目录 光场相机系列 相机标定前言一 四种坐标系二 标定流程1 坐标系关系2 相机畸变 前言 能过相机标定 xff0c 计算出相机的内参与外参 xff0c 然后通过内
  • ubuntu安装CobaltStrike,MSF,john

    ubuntu安装CobaltStrike ubuntu做服务端 xff0c windows10本机做客户端 xff0c win7做运行木 haha马的机子 span class token function sudo span teamse
  • Android打开系统相册的问题

    xfeff xfeff 在Google Nexus 7 xff08 Version 4 4 2 xff09 平板出现之前 xff0c Intent ACTION GET CONTENT打开相册会返回如下形式的Uri content medi