首页 > 解决方案 > Android相机意图打开前置摄像头而不是后置摄像头

问题描述

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

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

我该如何解决?先感谢您

标签: androidandroid-intentandroid-camera

解决方案


以下代码适用于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")
    }
}

推荐阅读