android 系统相册调用,各版本的区别总结
请求系统相册有三个Action:
(注意以下 图库(缩略图) 和 图片(原图) 的区别)
ACTION_OPEN_DOCUMENT 仅限4.4或以上使用 默认打开原图
ACTION_GET_CONTENT 4.4以下默认打开缩略图 。 以上打开文件管理器 供选择,选择图库打开为缩略图页面,选择图片打开为原图浏览。
ACTION_PICK 都可用,打开默认是缩略图界面,还需要进一步点开查看。
下面会详细介绍他们在不同版本系统中的测试结果区别:
测试系统:adroid 4.4.2 夜神模拟器
content://com.android.providers.media.documents/document/image%3A1372>>ACTION_OPEN_DOCUMENT从图片获取,打开是文件管理器的图片选择器,但是只能选择图片不能选图库,也不能选择其他文件
content://com.android.providers.media.documents/document/image%3A1372>>ACTION_GET_CONTENT从图片获取 打开的还是文件管理器,可以选择图库也可以选择图片
content://media/external/images/media/1372>>>>>>>>》》》ACTION_GET_CONTENT从图库获取
content://media/external/images/media/1541>>>>>>>>》》》》ACTION_PICK默认打开图库,没法选择图库还是图片
综上: uri只跟 图库还是图片选择有关,跟action无关,是选择图片还是图库才跟action有关
测试系统: android 4.4.4
ACTION_OPEN_DOCUMENT ACTION_GET_CONTENT都是直接打开图片,页面比较漂亮
ACTION_PICK默认打开图库,界面比较丑
测试系统:android 6.0 华为
content://com.android.providers.media.documents/document/image%3A35144>>>ACTION_OPEN_DOCUMENT 不可选图库还是图片
content://com.android.providers.media.documents/document/image%3A176> ACTION_GET_CONTENT选择图片中的
content://media/external/images/media/35144>>>>>>>>》》》》ACTION_GET_CONTENT选择图库中的
content://media/external/images/media/35144>>>>>>>>》》》》》ACTION_PICK默认打开图库,没法选择图库还是图片
测试系统:android4.2.1 华为
ACTION_GET_CONTENT 弹出图库和文件管理器,供选择
ACTION_OPEN_DOCUMENT 直接崩,不能使用
ACTION_PICK 直接打开图库
综上得出 :
结论一:
ACTION_OPEN_DOCUMENT 直接打开的是图片
ACTION_GET_CONTENT 打开后可选择是图库获取还是图片获取
ACTION_PICK 直接打开的就是图库
结论二:
从图片获取到的uri 格式为:content://com.android.providers.media.documents/document/image%3A35144>>>
cong图库获取到的uri格式为:content://media/external/images/media/35144>>>>>>
结论三:
4.4.4以上版本android系统,图片的界面比图库的界面好看。
结论四:
content://media/external/images/media/35144这种格式,转换成路径后可以直接用
content://com.android.providers.media.documents/document/image%3A35144这种格式,转换成路径后不能直接用。
结论五:
ACTION_OPEN_DOCUMENT不能在android4.4以下版本用,否则会crash,我的低版本手机系统有问题,没办法打印log所以看不到崩溃原因,猜测是取不到数据,报空
android 系统相册调用,各版本的区别总结的更多相关文章
- Android 系统架构 和 各个版本代号介绍
一.Android 系统架构: 1. linux内核层Android 基于Linux内核,为Android设备的各种硬件提供底层驱动 比如: 显示驱动.音频.照相机.蓝牙.Wi-Fi驱动,电源管理等 ...
- Android系统中Parcelable和Serializable的区别
转载:https://greenrobot.me/devpost/android-parcelable-serializable/ 进行Android开发的时候,我们都知道不能将对象的引用传给Acti ...
- 【安卓开发】Android系统中Parcelable和Serializable的区别
http://greenrobot.me/devpost/android-parcelable-serializable/ 进行Android开发的时候,我们都知道不能将对象的引用传给Activiti ...
- Android系统中Parcelable和Serializable的区别,自动化实现Parcelable接口的插件
Parcelable和Serializable的区别 参考地址:http://greenrobot.me/devpost/android-parcelable-serializable/ 由于最终的区 ...
- 解决android应用程序适用新老android系统版本方法
老的android系统不能运行高版本系统的新方法,为了解决这个问题: if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { ...
- "浅谈Android"第一篇:Android系统简介
近来,看了一本书,名字叫做<第一行代码>,是CSDN一名博主写的,一本Android入门级的书,比较适合新手.看了书之后,有感而发,想来进行Android开发已经有一年多了,但欠缺系统化的 ...
- 『与善仁』Appium基础 — 1、Android系统的测试环境搭建
目录 1.Android操作系统简介 (1)Android系统诞生 (2)Android系统的结构 (3)Android测试环境搭建整体思路 2.Java环境安装 (1)JDK8下载 (2)安装JDK ...
- 走进Android系统
一.Android背景 [Android定义] Android是Google公司在2007年11月5日公布的基于Linux平台的开源手机操作系统. [发展历程] 2005年,Google收购企业And ...
- Android系统编程入门系列之应用初始化Application
在上一篇文章中我们了解到Android系统启动应用的时候,会首先加载AndroidManifest.xml清单文件中的一系列信息,在清单文件中如果不指定<application></ ...
随机推荐
- 离线下载Windows 调试符号 Symbols
公司开发机没有不能连接到互联网.调试程序时那些Windows模块(如ntdll.dll)不能加载符号,而程序总是崩在这些模块里.想看一眼到底崩在了什么地方. 需要把对应的符号下载下来. 使用工具sym ...
- ARM 嵌入式中断
1. SATA中断要打开,挂在fiq上(通过cpu中断的fiq中断enable位,对sata中断使能), 2.外设及GPIO中断打开,挂在irq上(通过cpu中断的irq 的enable位对其使能), ...
- Java基础之在窗口中绘图——绘制圆弧和椭圆(Sketcher 3 drawing arcs and ellipses)
控制台程序. import javax.swing.JComponent; import java.util.*; import java.awt.*; import java.awt.geom.*; ...
- CSS文档流与块级元素和内联元素
CSS文档流与块级元素(block).内联元素(inline),之前翻阅不少书籍,看过不少文章, 看到所多的是零碎的CSS布局基本知识,比较表面.看过O'Reilly的<CSS权威指南>, ...
- maven中下载jar包源码和javadoc
1:Maven命令下载源码和javadocs 当在IDE中使用Maven时如果想要看引用的jar包中类的源码和javadoc需要通过maven命令下载这些源码,然后再进行引入,通过mvn命令能够容易的 ...
- Lintcode: Nth to Last Node in List
Find the nth to last element of a singly linked list. The minimum number of nodes in list is n. Exam ...
- CSS中 opacity的设置影响了index(层数)的改变
在使用 opacity 属性来实现页面整体透明的时候,发现了一个问题.如果两个层发生了重叠,使用了 opacity 属性并且属性值小于1的层,会覆盖掉后面的层.于是动手做了个实验,来验证 opacit ...
- hduoj 4712 Hamming Distance 2013 ACM/ICPC Asia Regional Online —— Warmup
http://acm.hdu.edu.cn/showproblem.php?pid=4712 Hamming Distance Time Limit: 6000/3000 MS (Java/Other ...
- acm算法模板(2)
数学问题: 1.精度计算——大数阶乘 2.精度计算——乘法(大数乘小数) 3.精度计算——乘法(大数乘大数) 4.精度计算——加法 5.精度计算——减法 6.任意进制转换 7.最大公约数.最小公倍数 ...
- Java基础(36):String与基本数据类型之间的双向转换(Wrapper类)
Java 中基本类型和字符串之间的转换 在程序开发中,我们经常需要在基本数据类型和字符串之间进行转换. 其中,基本类型转换为字符串有三种方法: 1. 使用包装类的 toString() 方法 2. 使 ...