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/