我正在关注有关如何在 Android 上使用 CameraX API 的此代码实验室示例链接,但是当我尝试捕获图像并将其保存到在主活动的 Oncreate 方法中创建的外部媒体目录时,我收到一条错误消息:无法将捕获结果保存到指定位置
下面是创建目录的方法,在 Oncreate 方法中调用:
private fun getOutputDirectory(): File {
val mediaDir = externalMediaDirs.firstOrNull()?.let {
File(it, resources.getString(R.string.app_name)).apply { mkdirs() } }
return if (mediaDir != null && mediaDir.exists())
{ Log.i(TAG, mediaDir.path); mediaDir } else { filesDir }
}
Run Code Online (Sandbox Code Playgroud)
根据我在 Android 文档中阅读的内容,externalMediaDirs在外部存储中创建了一个文件夹,虽然我的手机没有外部存储,但该文件夹已在此路径下成功创建:/storage/emulated/0/Android/media/com.example.camerax/cameraX
然后当点击拍照图像按钮时调用此方法:
private fun takePhoto() {
// Get a stable reference of the modifiable image capture use case
val imageCapture = imageCapture ?: return
// Create time-stamped output file …Run Code Online (Sandbox Code Playgroud)