Я создал функцию в ViewModel, которая удаляет как запись, так и файл изображения, но выполняет file.delete() не удаляет его, так как он все равно появляется в проводнике устройств. Если у вас есть какие-либо предложения, дайте мне знать о них, поскольку я уже несколько месяцев пытаюсь решить эту проблему.
Вот функция в моей ViewModel:
Код: Выделить всё
fun deleteVehicle(id:Int,fileName:String){
viewModelScope.launch{
val directory = context.filesDir
val file = File(directory, fileName)
try{
repository.deleteVehicle(id)
if(file.exists()){
file.delete()
}
}catch(e:Exception){
Log.e("ViewModel:","Error while trying to delete the vehicle: ${e.message}")
}
}
}
Код: Выделить всё
val lanzador = rememberLauncherForActivityResult(
contract = ActivityResultContracts.TakePicturePreview()
) { bitmap: Bitmap? ->
if (bitmap != null) {
val file = File(contexto.filesDir,
"${viewModel.listaVehiculos.value.size}.jpg") // Or .png
try {
FileOutputStream(file).use { out ->
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out) //
Or PNG
}
imageBitmap = bitmap.asImageBitmap()
} catch (e: IOException) {
e.printStackTrace()
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... ing-kotlin
Мобильная версия