Android2.2下camera应用程序支持GPS信息写入jpeg文件
来源:互联网 发布:贤者之爱结局知乎 编辑:程序博客网 时间:2024/05/22 02:15
一、概述
在Android2.2中,Camera的应用程序并不支持将GPS信息写入到JPEG文件中,但如果要实现这个功能,有如下两种方式:
1、修改底层camera驱动。在拍照时,一般都是使用硬件去进行JPEG编码,这样就需要修改JPEG编码器,使其可以将GPS信息写入JPEG文件的头部,即EXIF部分。这种方式使用与手机驱动开发者。
2、修改camera应用程序。Camera应用程序本身不支持该功能,但是android系统中提供了支持该功能的类——ExifInterface。本文介绍如何使用该类进行GPS信息的写入。这种方法的不足在于,每次写入GPS功能,都会把原有的JPEG文件读出,修改了Exif header部分后再写入文件。
二、实现GPS写入功能
首先来看看文件ImageManager.java,该文件位于:
/package/apps/Camera/src/com/android/camera/
该文件中,有个addImage()函数,其定义为:
此处,当location不等于null时,表示已经开启存储位置的功能,并且该手机的GPS功能已开启并且正常。在这里,我们就可以把GPS的信息写入JPEG文件中。其具体code如下:
三、分析GPS写入功能的实现
首先看看类ExifInterface的构造函数,其位于:
/framework/base/media/java/android/media/ ExifInterface.java
其具体实现为:
其功能是从指定的文件中获取其Exif信息。函数loadAttributes()的定义为:
该函数从文件中读取Exif信息,并将其写入mAttributes中。函数
getAttributesNative(mFilename),调用了JNI接口,其定义位于:
/external/jhead/main.c
函数setAttribute()的实现如下:
向mAttributes写入对应的项,比如经度和纬度信息。
最重要的函数saveAttributes(),它也是调用JNI接口。它负责将所有的Exif项写入到JPEG文件中。由于时间关系,就不做介绍了,具体代码请大家自己看,有问题的话,一起讨论。
- Android2.2下camera应用程序支持GPS信息写入jpeg文件
- Android2.2下camera应用程序支持GPS信息写入jpeg文件
- Android2.2下camera应用程序支持GPS信息写入jpeg文件
- Android 2.2 下 camera 应用程序支持 GPS 信息写入 jpeg 文件
- Android2.2的camera应用程序中支持双camera切换
- Android2.2的camera应用程序中支持双camera切换(一)
- Android2.2的camera应用程序中支持双camera切换(二)
- Android2.2的camera应用程序中支持双camera切换(一)(转)
- 写入GPS信息到jpeg格式的图片中 ExifInterface类的使用
- 写入GPS信息到jpeg格式的图片中 ExifInterface类的使用
- 写入GPS信息到jpeg格式的图片中 ExifInterface类的使用
- Android2.2平台上支持多camera(一)
- Android2.2平台上支持多camera(二)
- Android2.2平台上支持多camera(三)
- Android2.2平台上支持多camera(四)
- Android2.2平台上支持多camera(一)
- Android2.2平台上支持多camera(一)
- 如何将位置信息写入JPEG图片文件【android】
- .Net Remoting(远程方法回调)
- Android平台的音乐资源管理与播放
- VC调试DLL方法
- 根据日志文件将数据库还原至指定的时间点
- 兼容IE & Firefox 的脚本改本属性值的检测方法 [ 不支持Chrome ]
- Android2.2下camera应用程序支持GPS信息写入jpeg文件
- 无线路由器不能产生信号
- 无向网最小生成树 prim算法 和 kruskal算法
- Windows错误:堆被损坏
- mysql注入问题
- Asp.net MVC 中Controller返回值类型ActionResult
- DFS 深度优先搜索
- quartus虚拟按键生成
- 虚伪的世界我要一个家...