【问题标题】:Android Samsung ACTION_IMAGE_CAPTURE does not save to correct filenameAndroid Samsung ACTION_IMAGE_CAPTURE 未保存为正确的文件名
【发布时间】:2019-04-08 04:09:49
【问题描述】:

经过数小时的调试,我无法将三星 Android 手机上的图片 Intent 保存到正确的文件中。以下代码(Kotlin):

 val filename=File(getExternalStorageDirectory()?.toString()+"/test.jpg")
 if (filename != null) {
   val takePictureIntent=Intent(MediaStore.ACTION_IMAGE_CAPTURE)
   takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, filename)
   startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE)
   }

它将始终保存在文件名的sdcard/DCIM/Camera/20181104_181922.jpg(即日期和时间)的文件夹中。

有人知道为什么吗?

onActivityResult 的返回值也不显示文件名,而只显示“null”。请参阅以下代码:我做错了什么?

override fun onActivityResult(requestCode:Int, resultCode:Int, data:Intent?) {
    ...
    val returnedFilename = data?.getData()
    ...
}

【问题讨论】:

    标签: android android-intent kotlin android-camera


    【解决方案1】:

    有人知道为什么吗?

    EXTRA_OUTPUT 是提示,而不是命令。理想情况下,所有相机应用程序都会将其作为ACTION_IMAGE_CAPTURE 处理的一部分。没有要求他们这样做,许多相机应用程序都有ACTION_IMAGE_CAPTURE 实现,但没有。

    onActivityResult 的返回值也不显示文件名,只显示“null”

    ACTION_IMAGE_CAPTURE 没有记录到返回 UrionActivityResult()。所以,应该是null

    【讨论】:

    • 这就是我所担心的。因此,最简单的方法是寻找最新的文件,然后重命名它。 ...
    • @MarcelSonderegger:您不一定知道文件在哪里。您甚至可能无法访问它。仅在您愿意让用户帮助您找到照片的情况下使用ACTION_IMAGE_CAPTURE(例如,ACTION_OPEN_DOCUMENT),或者在相机应用程序无法将图像正确放置时仅愿意使用¯\_(ツ)_/¯点。
    • 你是绝对正确的。正如你所说,情况更糟。最后,我将编写自己的相机应用程序。我想避免这种情况,但这就是剩下的......
    猜你喜欢
    • 2020-07-29
    • 2021-11-23
    • 2014-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-08
    • 1970-01-01
    相关资源
    最近更新 更多