【问题标题】:Android camera intent open front camera instead of back cameraAndroid相机意图打开前置摄像头而不是后置摄像头
【发布时间】:2021-01-23 13:22:15
【问题描述】:

我遇到了一个奇怪的问题,即向移动相机发送意图拍照。在我的手机 xaomi 8 中运行良好,但是当我在三星 a 51 上安装应用程序时,意图打开前置摄像头而不是后置摄像头。目标始终是在各种手机上打开后置摄像头。 这是我的代码

cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
if (cameraIntent.resolveActivity(getPackageManager()) != null) {
  startActivityForResult(cameraIntent, ApplicationConst.CodiceIntentConst.REQUEST_CAMERA_CODE);
}

我该如何解决?提前谢谢你

【问题讨论】:

    标签: android android-intent android-camera


    【解决方案1】:

    以下代码适用于Samsung A51Pixel 2XL

    fun updateIntentForCameraFacing(cameraIntent: Intent, frontFacing: Boolean){
        if(Build.VERSION.SDK_INT < Build.VERSION_CODES.O){
            if(frontFacing)
                cameraIntent.putExtra("android.intent.extras.CAMERA_FACING", CameraCharacteristics.LENS_FACING_BACK)
            else
                cameraIntent.putExtra("android.intent.extras.CAMERA_FACING", CameraCharacteristics.LENS_FACING_FRONT)
    
        }
        else if(frontFacing){
            cameraIntent.putExtra("android.intent.extras.CAMERA_FACING", CameraCharacteristics.LENS_FACING_BACK)
            cameraIntent.putExtra("android.intent.extra.USE_FRONT_CAMERA", true)
    
            //samsung
            cameraIntent.putExtra("camerafacing", "front")
            cameraIntent.putExtra("previous_mode", "front")
        }
        else{
            cameraIntent.putExtra("android.intent.extras.CAMERA_FACING", CameraCharacteristics.LENS_FACING_FRONT)
            cameraIntent.putExtra("android.intent.extra.USE_FRONT_CAMERA", false)
    
            //samsung
            cameraIntent.putExtra("camerafacing", "rear")
            cameraIntent.putExtra("previous_mode", "rear")
        }
    }
    

    【讨论】:

      【解决方案2】:

      您能否尝试以下代码来启动相机意图:

      MediaStore.ACTION_IMAGE_CAPTURE_SECURE
      

      【讨论】:

      • 也许我的问题不是很清楚:D。我只想打开后置摄像头而不是前置摄像头。在我的 xaomi 上运行良好,但在 samsung a 51 上却不行,因为打开的是前置摄像头而不是后置摄像头。谢谢
      • 我明白你的意思。你能试试上面的代码并传递额外的参数吗
      • 使用该代码,在我的 xaomi 上打开前置摄像头。
      • 我的错。更新了我的答案。
      • MediaStore.ACTION_IMAGE_CAPTURE_SECURE 也可以在我的 xaomi 上使用,但三星 51 的前置摄像头已打开 :(
      猜你喜欢
      • 2014-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多