使用Android SDK 版本超过29编译会发现这个方法被废弃了,解决方案是:
context.getExternalFilesDir()
-----------
比如要把图片保存到手机的指定文件夹下后,扫描更新媒体库,在相册中显示,存储路径的旧写法:
//app调用系统相机拍照得到的照片存储的路径: /storage/emulated/0/Pictures/demox_camera
private val outputPhotoDirectory: String by lazy {
//路径不用根据版本区分,都一样
"${Environment.getExternalStorageDirectory().absolutePath}/" +
"${Environment.DIRECTORY_PICTURES}/demox_camera/"
}
旧写法直接把照片存在了公共目录的Pictures/demox_camera下,当app卸载后,这个公共路径的文件夹不能随着卸载而删除,脏数据的留下是这个旧写法废弃的原因。
如果用了解决方案的写法:
//app调用系统相机拍照得到的照片存储的路径: /storage/emulated/0/Android/data/com.change.demox/files/Pictures/demox_camera
private val outputPhotoDirectory =
//路径不用根据版本区分,都一样
MyApplication.instance?.context?.getExternalFilesDir(Environment.DIRECTORY_PICTURES)?.abs