我创建了一个自定义相机应用程序,我可以在其中接受文件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?