Android_照相机Camera_调用系统照相机返回data为空
来源:互联网 发布:乐天软件 编辑:程序博客网 时间:2024/05/01 21:20
1.调用系统照相机
但是在onActivityResult(int requestCode, int resultCode, Intent data)代码中得到的data总为null?
2.原因分析
于是我查看了Android系统框架Camera应用程序,找到了关于系统照相机如何处理返回值data问题!
默认情况下,即不需要指定intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);照相机有自己默认的存储路径,拍摄的照片将返回一个缩略图。如果想访问原始图片,可以通过dat extra能够得到原始图片位置。即,如果指定了目标uri,data就没有数据,如果没有指定uri,则data就返回有数据!现在想想,这种设计还是很合理的!
3.Android系统照相机部分关键源码
4.常见问题及解决办法
如果我们设置了照片的存储路径,那么很可能会遇到一下三种问题:
问题一:onActivityResult 方法中的data 返回为空(数据表明,93%的机型的data 将会是Null,所以如果我们指定了路径,就不要使用data 来获取照片,起码在使用前要做空判断)
问题二:照片无法存储,如果自定义存储路径是/mnt/sdcard/lowry/,而手机SD 卡下在拍照前没有名为lowry 的文件夹,那么部分手机拍照后图片不会保存,导致我们无法获得照片,大多数手机的相机遇到文件夹不存在的情况都会自己创建出不存在的文件夹,而个别手机却不会创建,其代表机型为:三星I8258、华为H30-T00、红米等。解决的方法就是在指定存储路径前先判断路径中的文件夹是否都存在,不存在先创建再调用相机。
问题三:照片可以存储,但是名字不对
file:///mnt/sdcard/123 1.jpg,由于Uri 的fromFile 方法会将路径中的空格用“%20”取代。其实对于大多数的手机这都不算事,手机在解析存储路径的时候都会将“%20”替换为空格,这样实际上最终的照片名字还是我们当初指定的名字:123 1.jpg,遗憾的是个别手机(如酷派7260)系统自带的相机没有将“%20”读成空格,拍照后的照片的名字是123%201.jpg,我们用路径“file:///mnt/sdcard/123 1.jpg”能找到照片才怪!!
解决办法:
(1)使用 onActivityResult 中的 intent(data)前要做空判断。
(2)指定拍照路径时,先检查路径中的文件夹是否都存在,不存在时先创建文件夹再调用相机拍照。(3)指定拍照存储路径时,照片的命名中不要包含空格等特殊符号。
原文:http://blog.csdn.net/zimo2013/article/details/16916279
- Android_照相机Camera_调用系统照相机返回data为空
- Android_照相机Camera_调用系统照相机返回data为空
- Android_照相机Camera_调用系统照相机返回data为空
- Android_照相机Camera_调用系统照相机返回data为空
- Android_照相机Camera_调用系统照相机返回data为空
- Android_照相机Camera_调用系统照相机返回data为空
- Android_照相机Camera_调用系统照相机返回data为空
- Android_照相机Camera_调用系统照相机返回data为空
- Android_照相机Camera_使用intent调用系统照相机在onActivityResult返回data为空
- Android 照相机Camera 调用系统照相机返回data为空
- Android_照相机Camera_调用系统照…
- Android调用系统照相机返回intent为空原因分析
- Android调用系统照相机
- 调用系统照相机 相册
- 调用系统照相机
- 调用系统照相机
- android 调用系统照相机
- 调用系统照相机
- 移植tiobench到openwrt
- Linux基本命令之linux cd命令详解
- 409. Longest Palindrome
- javascript-文档碎片
- "error while loading shared libraries: xxx.so.x" 错误的原因和解决办法
- Android_照相机Camera_调用系统照相机返回data为空
- Android中的坐标系以及获取坐标的方法
- Post405错误
- http://www.cnblogs.com/edisonfeng/p/3571870.html
- LeetCode OJ(11)
- javascript 对象的三个属性 二十六
- VC++6.0的组建菜单选项功能解释
- C语言 字符数组与字符指针比较
- 区块链开发的环境搭建