将图片写到提供的Uri

时间:2019-12-16 10:40:30

标签: android kotlin android-camera2

我创建了一个自定义相机应用程序,我可以在其中接受文件Uri。当我观察到时,我可以看到默认的相机应用程序可以将图像保存到提供的Uri中,如下所示。

 Intent(MediaStore.ACTION_IMAGE_CAPTURE).also { takePictureIntent ->
            takePictureIntent.resolveActivity(activity.packageManager)?.also {
                takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri)
                activity.startActivityForResult(takePictureIntent, cameraActivityRequestCode)
            }
        }

如何为我的自定义相机应用程序实现相同的功能。我正在使用Android的Camera2Api。并且能够在我的活动中获得Uri。但是捕获后,而不是将其保存到文件中,我想保存在提供的Uri中。这是下面的示例代码。

   // region Life Cycle
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_camera)

        textureView = texture
        var fileUri = getIntent().extras?.get(FILE_PATH) as Uri
        file = File(fileUri.path)

        if (!PermissionHelper.hasCameraPermission(this)) {
              PermissionHelper.requestCameraPermission(this)
              finish()
        }
    }

在上述代码中,fileUri.path没有提供预期的正确路径。

content://com.company.mobile.fileprovider/temp_folder/picture.jpg

我已经使用FileProvider创建了Uri。

如何从Uri获取确切路径,或者如何将图像保存到该Uri?

0 个答案:

没有答案