如何使android Q中添加的RELATIVE_PATH向后兼容?

Hos*_*san 7 media storage android mediastore scoped-storage

根据文档,RELATIVE_PATH 在 API 级别 29 中添加 public static final String RELATIVE_PATH 该媒体项在其持久存储的存储设备中的相对路径。例如,存储在 /storage/0000-0000/DCIM/Vacation/IMG1024.JPG 的项目的路径为 DCIM/Vacation/。

在 Android Q 之前,如何组织在 Android 上插入 MediaStore 的媒体文件 Afaik:根据已删除的文档,它PRIMARY_DIRECTORY不起作用 put(MediaStore.MediaColumns.PRIMARY_DIRECTORY, relativePath)

/**
 * The primary directory name this media exists under. The value may be
 * {@code NULL} if the media doesn't have a primary directory name.
 *
 * @removed
 * @deprecated Replaced by {@link #RELATIVE_PATH}.
 */
@Column(Cursor.FIELD_TYPE_STRING)
@Deprecated
public static final String PRIMARY_DIRECTORY = "primary_directory";
Run Code Online (Sandbox Code Playgroud)

小智 0

基本上你只需要使用Media.DATAAndroid Q以下的版本,Media.RELATIVE_PATH其他的都可以使用。

仅供参考,我编写了一个函数来实现此目的。