android - Android相机意图打开前置摄像头而不是后置摄像头
问题描述
我正面临一个奇怪的问题,向移动相机发送意图拍照。在我的手机 xaomi 8 中运行良好,但是当我在三星 a 51 上安装应用程序时,意图打开前置摄像头而不是后置摄像头。目标始终是在各种手机上打开后置摄像头。这是我的代码
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
if (cameraIntent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(cameraIntent, ApplicationConst.CodiceIntentConst.REQUEST_CAMERA_CODE);
}
我该如何解决?先感谢您
解决方案
以下代码适用于Samsung A51
和Pixel 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")
}
}
推荐阅读
- python-3.x - 如何将列表值与单个 csv 文件的行匹配?
- signalr - 使用 SignalR 时如何确保事件不会丢失
- python - matplotlib:条形图动画只能工作一次
- java - 从 AWS Lambda 连接到 MongoDB Atlas 需要很长时间
- django - 为什么我的 Django 密码没有被加密?
- swift - 如何使按钮正确缩放我的图像
- c++ - 有没有办法从 C++ 目录中找到最后修改的文件?
- sql - 如何以文本方式指示 SQL SELECT 中没有结果?
- javascript - 'fetch' Response.status 和 Response.ok,移动浏览器是否支持它们?
- wsdl - WSDLException faultCode=PARSER_ERROR - 使用 schemaLocation 时:MyService?xsd=myschema.xsd