首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android摄像头意图打开前置摄像头而不是后置摄像头

Android摄像头意图打开前置摄像头而不是后置摄像头
EN

Stack Overflow用户
提问于 2020-10-08 21:22:59
回答 2查看 239关注 0票数 0

我遇到了一个奇怪的问题,就是发送一个意向到手机相机来拍照。在我的手机上,xaomi 8运行良好,但当我在三星a51上安装应用程序时,intent会打开前置摄像头,而不是后置摄像头。我们的目标是在所有类型的手机上都能打开后置摄像头。这是我的代码

代码语言:javascript
复制
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
if (cameraIntent.resolveActivity(getPackageManager()) != null) {
  startActivityForResult(cameraIntent, ApplicationConst.CodiceIntentConst.REQUEST_CAMERA_CODE);
}

我该怎么解决它呢?提前谢谢你

EN

回答 2

Stack Overflow用户

发布于 2021-08-02 18:13:49

以下代码适用于Samsung A51Pixel 2XL

代码语言:javascript
复制
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")
    }
}
票数 1
EN

Stack Overflow用户

发布于 2020-10-08 21:30:49

您可以尝试以下代码来启动camera intent:

代码语言:javascript
复制
MediaStore.ACTION_IMAGE_CAPTURE_SECURE
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64263476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档