Как я могу автоматизировать взятие и возврат фото - PullRequest
0 голосов
/ 24 сентября 2019

У меня нижеприведенный код работает нормально, что при нажатии кнопки открывается намерение камеры, позволяя мне сделать фотографию, а затем подтвердить, что фотография в порядке, т.е. 2 интерфейса от пользователя после нажатия кнопки, доPic загружается в представлении изображения.Могу ли я автоматизировать его, т. Е. После того, как пользователь нажмет кнопку на задании, намерение камеры будет открыто непосредственно, сделайте фотографию того, что там есть, и верните то, что было снято пользователю.

мм, то есть что-то вродеприложения, работающие с голосовой командой 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)
    }
}

Камера откроется, снимок будет сделан, пользователь увидит, чтобудет на экране ,, мм, если есть способ сделать снимок, не открывая приложение камеры, это будет приветствоваться.спасибо

1 Ответ

0 голосов
/ 24 сентября 2019

Могу ли я автоматизировать его, т. Е. Как только пользователь нажмет кнопку на задании, намерение камеры будет открыто непосредственно, сделайте фотографию того, что там есть, и верните то, что было снято пользователю.

Нет.

Вам потребуется реализовать собственные функции приложения камеры для автоматического захвата изображений, будь то использование API-интерфейсов камеры напрямую или через библиотеку обертки (CameraX, Fotoapparat, CameraKit-Android и т. Д.).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...