使用 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,于是我拿来试了一下,发现也是可以正确获取图片的旋转信息的。

相关推荐
奈斯先生Vector10 分钟前
当模型版本不断变化,RelayRouter 能否帮助 AI 应用摆脱深度绑定
android·java·人工智能·开源·aigc
TimeFine17 分钟前
让强模型做“总工”,让高性价比模型写代码
android
用户380341658829723 分钟前
macOS 录屏:ScreenCaptureKit 与 iOS 的分野,共用引擎的抽象层该切在哪
ios·音视频开发
又见情义2 小时前
RK3568 Android 13 屏蔽 healthd 电池日志经验分享
android
古法安卓5 小时前
Android-Fork 机制详解
android·java·android studio
Android打工仔5 小时前
不要在 Data 层随意把 Cold Flow 转换成 Hot Flow
android·架构·kotlin
峥嵘life6 小时前
2026免费的 opencode 使用分享:Windows端 + 服务器CLI 实战总结
android·大数据·开发语言
杉氧6 小时前
拒绝重复造轮子:我写了一个生产级的 Kotlin 协程与 Flow 工具库(CoroutineKit)
android·kotlin·workflow
恋猫de小郭7 小时前
Flutter GSoC 2026 提案进度解读,补上 DevTools、FFI 和原生平台的关键缺口
android·前端·flutter
2501_915909067 小时前
怎么用 FlutterFlow 把应用发布到 App Store?
android·ios·小程序·https·uni-app·iphone·webview