使用 ExifInterface 遇到的兼容性问题

为了获取图片的旋转角度,使用了如下 api

java 复制代码
import android.media.ExifInterface;

ExifInterface exif = new ExifInterface(filePath);
int ori = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_UNDEFINED);

发现在三星的一些机型上,获取的ori都是 0,于是打算换一个 ExifInterface 的构造方法,但是发现这些构造方法,除了 String 的,API 版本都比较高,但是我们必须支持更低的版本。

这说明这个库肯定有一些兼容性问题,发现了一个警告。

java 复制代码
Avoid using android.media.ExifInterface; use androidx.exifinterface.media.ExifInterface instead

切换到androidx.exifinterface.media.ExifInterface 就可以了,在搜索问题的过程中,也发现了一些其他解决方案,那就是直接读取图片文件里面的信息。代码比较完整的是这个 Exif.java,于是我拿来试了一下,发现也是可以正确获取图片的旋转信息的。

相关推荐
介一安全23 分钟前
【Frida Android】实战篇17:Frida检测与绕过——基于inline hook的攻防实战
android·网络安全·逆向·安全性测试·frida
龙之叶2 小时前
Android如何通过adb命令push文件后在媒体库中显示
android·adb
Just_Paranoid2 小时前
【Settings】Android 设备信息相关参数的获取
android·5g·wifi·ip·sn·network
StarShip3 小时前
SystemServer类 与 system_server进程
android
画个太阳作晴天3 小时前
Android App 跟随系统自动切换白天/黑夜模式:车机项目实战经验分享
android·android studo
成都大菠萝4 小时前
2-2-2 快速掌握Kotlin-语言的接口默认实现
android
代码s贝多芬的音符4 小时前
android webview 打开相机 相册 图片上传。
android·webview·webview打开相机相册
游戏开发爱好者84 小时前
抓包工具有哪些?代理抓包、数据流抓包、拦截转发工具
android·ios·小程序·https·uni-app·iphone·webview
StarShip5 小时前
Android system_server进程介绍
android
StarShip5 小时前
Android Context 的 “上下文”
android