android - Android 外部存储处理
问题描述
我的应用程序中有这段代码,我已经使用了几年,但现在它已被弃用,我无法找到有关在 API-29 后需要进行哪些更改的帮助:
fun createSharedExternalImageFile(): File {
val timeStamp:String = SimpleDateFormat("yyyyMMdd_HHmmss").format(Date())
val imageFileName:String = "JPEG_" + timeStamp + "_"
val temp: File = Environment.getStorageDirectory() // DEPRECATED METHOD
val storageDir = File(temp,"MyAppName")
if (!storageDir.exists()) storageDir.mkdir()
return File(storageDir, "$imageFileName.jpg")
}
我尝试了以下代码:
fun createSharedExternalImageFile(context: Context): File {
// Create an image file name
//val timeStamp:String = SimpleDateFormat("yyyyMMdd_HHmmss").format(Date())
val timeStamp:String = SimpleDateFormat("yyyyMMdd_HHmmss").format(Date())
val imageFileName:String = "JPEG_" + timeStamp + "_"
val temp: File = if (Build.VERSION.SDK_INT>Build.VERSION_CODES.P){
context.dataDir
}else{
Environment.getExternalStorageDirectory()
}
val storageDir = File(temp,"MyAppName")
if (!storageDir.exists()) storageDir.mkdir()
return File(storageDir, "$imageFileName.jpg")
}
我在模拟器中的 API30 上收到以下错误..
java.lang.IllegalArgumentException:找不到包含 /data/data/packagename/MyAppName/JPEG_20210319_124810_.jpg 的已配置根目录
有人可以帮我举个例子吗?我想将文件存储在共享的外部文件夹中。
解决方案
推荐阅读
- node.js - 将 jsons 插入 Postgres 数据库时出现超时错误
- android - Not understanding Observable.from and Observable.just in RxJava
- javascript - Javascript - Limit td:nth-child to max columns [1-3]
- android - SignalrR NativeScript 安卓
- python - 将所有键值附加到字典值列表中存在的列表
- jquery - sweetAlert - 单击确认按钮时不调用函数
- python - 在满足同一行中的初始条件后遍历 Pandas 行
- swift - 如何快速从电话号码中删除特殊字符?
- php - 如何使用 PHP 在 Linux/Apache 上使用 Windows 身份验证连接到 SQL Server?
- hive - 如何在 Hive 0.13 中使用 ALTER TABLE CHANGE COLUMN CASCADE