android - Android 10 中已弃用 getExternalStorageDirectory

标签 android kotlin android-external-storage android-10.0 android-storage

我正在尝试使用 ARCore 和 Kotlin 生成文件名来保存 AR 模型。

自 Android 10 起,出于隐私考虑,环境方法 getExternalStoragePublicDirectory()getExternalStorageDirectory() 已被弃用。

以下代码可以用什么替代?

private fun generateFileName() : String {
        val date = SimpleDateFormat("yyyyMMddHHmmss", java.util.Locale.getDefault()).format(Date())
        return Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) + File.separator + "CardAR/" + date + "_screenshot.jpg"
    }

最佳答案

private File getAbsoluteFile(String relativePath, Context context) {
    if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
        return new File(context.getExternalFilesDir(null), relativePath);
    } else {
        return new File(context.getFilesDir(), relativePath);
    }
}

此方法将返回文件的完整路径。

关于android - Android 10 中已弃用 getExternalStorageDirectory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60915761/

相关文章:

android: 为 mqtt 发布的消息设置 qos

android - 在 Android 库项目中禁用 Crashlytics 进行调试

java - 无法在 ListView 中跳过一行

java - 小米和oppo等中国ROM上的工作管理器,在电池优化时,将工作的计划延迟增加几个小时

intellij-idea - 输入 “object.”后,Kotlin完成对话框弹出窗口

java - Android 4.4.2 不删除文件

android - 外存/sd卡缓存图片的推荐路径

Android 11 - 访问我的应用程序 Android/Data 文件夹中的文件

java - 想要将 Android 设备应用程序(Java 编程)连接到 NetBeans 8.0

android - 将 PlaceID 字符串转换为 LatLng 对象