gpt4 book ai didi

android - registerForActivityResult TakePicture 未触发

转载 作者:行者123 更新时间:2023-12-03 20:25:24 25 4
gpt4 key购买 nike

我尝试使用新的 registerForActivityResult 拍照。我可以打开相机 Intent ,但拍照后,没有触发回调,我看不到任何关于 Activity 结果或 logcat 错误的信息。
我也试过RequestPermission,它被触发了。没找到,怎么回事
我的代码在这里:

class UploadDocumentFragment {

private val registerTakePicture = registerForActivityResult(
ActivityResultContracts.TakePicture()
) { isSuccess ->
if (isSuccess) {
viewModel.addDocToRequest()
viewModel.setSelectedDocument(null)
} else {
R.string.internal_error.showAsDialog { }
}
}

//...

private fun takeImage() {
val photoFile: File? = viewModel.createImageFile()
photoFile?.also {
val photoURI: Uri = FileProvider.getUriForFile(
requireContext(),
BuildConfig.APPLICATION_ID +".fileProvider",
it
)
registerTakePicture.launch(photoURI)
}
}
}
ViewModel 上的 createImageFile 函数:
@Throws(IOException::class)
fun createImageFile(): File? {
val imageFileName = selectedDocumentTypeLD.value?.visibleName
return try {
val file = File(storageDir, "$imageFileName.jpg")
if (file.createNewFile() || file.exists()) {
file
} else {
null
}
} catch (ex: IOException) {
ex.printStackTrace()
null
}
}
应用分级:
implementation 'androidx.activity:activity-ktx:1.2.0-alpha06'
implementation 'androidx.fragment:fragment-ktx:1.3.0-alpha06'

最佳答案

我发现了问题。
我之前的 onActivityResult 函数还在。我想也许旧函数可以覆盖 registerForActivityResult。当我删除旧功能时, registerForActivityResult 工作得很好。

关于android - registerForActivityResult TakePicture 未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62497463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com