【问题标题】:How can I automate taking and returning a pic如何自动拍摄和返回图片
【发布时间】:2019-09-24 11:08:22
【问题描述】:

我的以下代码工作正常,点击按钮后,相机意图打开,允许我拍照,然后确认照片没问题,即点击按钮后来自用户的 2 个界面,直到pic 在图像视图中加载。 我可以自动化它吗,即一旦用户单击 Activity 上的按钮,直接打开相机意图,拍摄那里的任何照片,并将捕获的内容返回给用户。

mm,即类似于使用 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 如果有一种方法可以在不打开相机应用程序的情况下拍照,它也会受到欢迎。谢谢

【问题讨论】:

标签: android android-intent


【解决方案1】:

我可以自动化它吗,即一旦用户单击 Activity 上的按钮,相机 Intent 就会直接打开,对那里的任何东西拍照,然后将捕获的内容返回给用户。

没有。

您需要实现自己的相机应用功能来自动捕获图像,无论是直接使用相机 API 还是通过包装库(CameraX、Fotoapparat、CameraKit-Android 等)。

【讨论】:

    猜你喜欢
    • 2016-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多