如何在通过MediaStore.ACTION_IMAGE_CAPTURE意图拍照时确定所捕获的图像是前置摄像头还是后置摄像头?

4

我知道当我们调用 Camera 并从 Camera.getCameraInfo() 获取此信息时是可能的,但当我们从 MediaStore.ACTION_IMAGE_CAPTURE 意图中调用相机时,我们如何知道使用了哪个相机来拍摄照片,因为 onActivityResult() 仅返回数据作为位图?

2个回答

0

使用Camera.getCameraInfo()来确定相机是设备的正面还是背面,并确定图像的方向。欲了解更多信息,请查阅其指南此处


我猜你没有完全读懂我的问题,我知道我们可以通过那种方式实现,但是我想要的是当我们通过 Intent imageCaptureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE) 调用相机时。 - flexdroid
CameraInfo camInfo = new CameraInfo(); Camera.getCameraInfo(camNo, camInfo); if (camInfo.facing==(Camera.CameraInfo.CAMERA_FACING_FRONT)) { mCamera = Camera.open(camNo); //如果是前置摄像头,执行某些操作 } else { //后置摄像头} - Jigar Pandya
我不认为在图像被捕获后还有其他检查的方法。你必须在摄像头打开时进行检测并编写相应的代码! - Jigar Pandya

0

简短的回答是“不行”。如果你得到了一张捕获的JPEG图片,你可能(在某些情况下)可以通过检查该文件的EXIF头来确定来源相机。


哪个EXIF头? - amitavk
EXIF头可以提供相机的相当详细的描述。例如,相机制造商相机型号等。在我的无品牌中国设备上帮助我的一个指标是焦距。在这里,主摄像头的焦距为4毫米,次镜头的焦距为2毫米。 - Alex Cohn
1
可能会有所帮助,但最终仍然是猜测 ¯\(ツ) - amitavk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接