android - 如何自动拍摄和返回图片
问题描述
我的下面的代码工作正常,点击按钮后,相机意图打开,允许我拍照,然后确认照片没问题,即点击按钮后来自用户的 2 个界面,直到图片加载在图像视图中。我可以自动化它吗,即一旦用户单击活动上的按钮,直接打开相机意图,拍摄那里的任何照片,并将捕获的内容返回给用户。
毫米,即类似于应用程序的东西take a selfie
语音命令的应用程序。
我打开相机意图的典型代码是:
btnCamera.setOnClickListener { // I need this click to be the only thing done by the user
if(isPermissionGranted(permission.CAMERA)) startCamera()
else requestCameraPermission(this)
}
private fun startCamera() {
val fileName = System.currentTimeMillis().toString() + ".jpeg"
output = File(
this.getExternalFilesDir(Environment.DIRECTORY_PICTURES),
fileName
)
val intent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
outPutFileUri = this.let { it ->
FileProvider.getUriForFile(
it,
BuildConfig.APPLICATION_ID,
output!!
)
}
intent.putExtra(MediaStore.EXTRA_OUTPUT, outPutFileUri)
startActivityForResult(intent, REQUEST_IMAGE_CAPTURE)
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) = runBlocking {
super.onActivityResult(requestCode, resultCode, data)
val activity = this
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == Activity.RESULT_OK) {
val bitmap = outPutFileUri?.let { getCapturedImage(it) }
imageView.setImageBitmap(bitmap)
}
}
private fun getCapturedImage(selectedPhotoUri: Uri): Bitmap =
when {
Build.VERSION.SDK_INT < 28 -> MediaStore.Images.Media.getBitmap(
contentResolver, selectedPhotoUri)
else -> {
val source = ImageDecoder.createSource(contentResolver, selectedPhotoUri)
ImageDecoder.decodeBitmap(source)
}
}
相机将打开,拍照,用户将看到屏幕上发生的事情,mm 如果有办法在不打开相机应用程序的情况下拍照,它也会受到欢迎。谢谢
解决方案
我可以自动化它吗,即一旦用户单击活动上的按钮,直接打开相机意图,拍摄那里的任何照片,并将捕获的内容返回给用户。
不。
无论是直接使用相机 API 还是通过包装库(CameraX、Fotoapparat、CameraKit-Android 等),您都需要实现自己的相机应用程序功能来自动捕获图像。
推荐阅读
- python - Ansible Python API - 无法加载组变量
- batch-file - 运行 2 个命令中的 1 个的批处理文件
- c# - 在使用 Unity 时在 Travis 中包含以 .NET 4.x 为目标的依赖项
- spring-boot - 一种拦截响应对象中所有字符串并在将其发送到服务器之前执行一些操作的方法
- windows - 朱莉娅在 Cygwin
- java - 如何检查firebase中是否已存在值?
- ruby-on-rails - 如何在视图中处理属于另一个模型并给出其 ID 的视图应该显示不同的信息?
- regex - 正则表达式查询匹配位置
- javascript - 无限水平旋转木马的悬停暂停
- python - Python在定义时部分确定参数的解决方法?