Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Kotlin从设备存储中删除图像_Android_Image_Kotlin - Fatal编程技术网

Android Kotlin从设备存储中删除图像

Android Kotlin从设备存储中删除图像,android,image,kotlin,Android,Image,Kotlin,我有一个应用程序,可以拍摄用户选择的照片,并将其发送到服务器,然后将其存储在那里。我做了那部分,效果很好。问题是,我想在存储这些照片后删除这些照片。我尝试了我在这里或其他网站找到的所有解决方案,但都不起作用,我有这些图片的Uri,因此如何删除它们 这是我如何选择图片的代码 private fun openImageChooser() { Intent(Intent.ACTION_GET_CONTENT).also { it.type = "image/*&quo

我有一个应用程序,可以拍摄用户选择的照片,并将其发送到服务器,然后将其存储在那里。我做了那部分,效果很好。问题是,我想在存储这些照片后删除这些照片。我尝试了我在这里或其他网站找到的所有解决方案,但都不起作用,我有这些图片的Uri,因此如何删除它们

这是我如何选择图片的代码

private fun openImageChooser() {
    Intent(Intent.ACTION_GET_CONTENT).also {
        it.type = "image/*"
        it.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true)

        startActivityForResult(
            Intent.createChooser(it, "Select Pictures"),
            MainActivity.REQUEST_CODE_PICK_IMAGE
        )
    }
}

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)
    if (resultCode == Activity.RESULT_OK) {
        when (requestCode) {
            MainActivity.REQUEST_CODE_PICK_IMAGE -> {
                for (i in 0 until data?.clipData!!.itemCount) {
                    selectedImagesList.add(data.clipData?.getItemAt(i)!!.uri)
                }
                uploadImages()
            }
        }
    }
}
这就是我将它们发送到服务器的方式

val imgsList = mutableListOf<MultipartBody.Part>()

    for (img in selectedImagesList) {
        val parcelFileDescriptor = contentResolver.openFileDescriptor(img, "r", null) ?: return

        val inputStream = FileInputStream(parcelFileDescriptor.fileDescriptor)
        val file = File(cacheDir, contentResolver.getFileName(img))

        val outputStream = FileOutputStream(file)

        inputStream.copyTo(outputStream)


        val bodyPart = MultipartBody.Part.createFormData(
            "files", file.name, RequestBody.create(
                MediaType.parse("multipart/form-data"), file
            )
        )

        imgsList.add(bodyPart)

    }

    MaApi.invoke().uploadImages(
        imgsList, "pics"
    ).enqueue(object : Callback<uploadResponse> {
        override fun onResponse(
            call: Call<uploadResponse>,
            response: Response<uploadResponse>
        ) {
            imgsLayout.snackbar("images upload successfully!!")
            
        }

        override fun onFailure(call: Call<uploadResponse>, t: Throwable) {
           
            imgsLayout.snackbar(t.message.toString())
        }
    })
val imgsList=mutableListOf()
用于(选择的图像列表中的img){
val parcelFileDescriptor=contentResolver.openFileDescriptor(img,“r”,null)?:返回
val inputStream=FileInputStream(parcelFileDescriptor.fileDescriptor)
val file=file(cacheDir,contentResolver.getFileName(img))
val outputStream=FileOutputStream(文件)
inputStream.copyTo(outputStream)
val bodyPart=MultipartBody.Part.createFormData(
“文件”、file.name、RequestBody.create(
parse(“多部分/表单数据”),文件
)
)
imgsList.add(车身部件)
}
MaApi.invoke().uploadImages(
imgsList,“图片”
).enqueue(对象:回调{
覆盖响应(
呼叫:呼叫,,
答复:答复
) {
snackbar(“图像上传成功!!”)
}
覆盖失效时的乐趣(调用:调用,t:可丢弃){
imgsLayout.snackbar(t.message.toString())
}
})