android - VOLUME_EXTERNAL 需要 API 级别 29

标签 android mediastore

Android documentation他们说

On API <= 28, use VOLUME_EXTERNAL


但这也需要 API 级别 29,并且它不会将媒体文件保存到 MediaStore。
 MediaStore.Audio.Media.IS_PENDING
 MediaStore.Video.Media.RELATIVE_PATH
 MediaStore.Video.Media.DATE_TAKEN
也需要API 29,所以我觉得文档不清楚,或者我错过了什么?以及如何将媒体文件保存在 Android 10 以下。

最佳答案

即使 MediaStore.VOLUME_EXTERNAL 在 API 29 中添加,但只要设置 targetSdkVersion 就可以安全使用它和 compileSdkVersion到 29 岁以上。我已经在 API 16 上对其进行了测试,这个常量并没有使我的应用程序崩溃。
但是,如果您认为这个警告很烦人,您可以使用 MediaStore.<MediaType>.EXTERNAL_CONTENT_URI反而。它将返回与 MediaStore.<MediaType>.getContentUri(MediaStore.VOLUME_EXTERNAL) 相同的值.
例如,MediaStore.Downloads.EXTERNAL_CONTENT_URI将等于 MediaStore.Downloads.getContentUri(MediaStore.VOLUME_EXTERNAL) ,即 content://media/external/downloads .
此外,您可以通过 @SuppressLint("InlinedApi") 忽略此警告。 .

关于android - VOLUME_EXTERNAL 需要 API 级别 29,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63307501/

相关文章:

android - 是否有等效于 iOS 的 identifierForVendor for android?

android - ListView 项目长单击不适用于 ImageView(可点击)

Android 10 MediaStore 更新镜像 RecoverableSecurityException

android - 使用异步任务从内容提供者加载图像位图

java - 如果你有歌曲 ID,Android 从媒体商店获取歌曲?

android - 在 ListView 中重复图像...正在从视频中加载缩略图

java - 当我有 Intent 时,我可以把布局放在哪里?

Android 相互 fragment 化

java - Android ImageAdapter 一次又一次地重复相同的图像/项目

android - 列出Android中的所有相机图像