【问题标题】:Samsung Galaxy S: How to determine presence of front-facing camera?三星 Galaxy S:如何确定前置摄像头的存在?
【发布时间】:2011-09-09 01:27:27
【问题描述】:

我知道我们可以通过设置"camera-id" Camera 参数来访问 Gingerbread Galaxy S 之前的设备上的前置摄像头:

Camera cam = Camera.open();
Camera.Parameters params = cam.getParameters();
params.set("camera-id", 2);

问题是,并非所有 Galaxy 设备都有前置摄像头。这些设备确实有"camera-id" 参数,它允许我将其设置为 2(正面)。据我发现,确定 FFC 存在/不存在的唯一方法是查看startPreview() 是否在"camera-id" 为 2 时引发异常。这是一种尴尬的修复,尤其是当我尝试支持多个设备。

有没有人找到一种方法来查询 2.1 或 2.2 Galaxy S 上的摄像头数量,或者至少确定前置摄像头的存在?

谢谢!

【问题讨论】:

    标签: android camera


    【解决方案1】:

    如果您需要前置摄像头,可以将其放入 AndroidManifest.xml 中,如下所示:

    <uses-feature android:name="android.hardware.camera.front" android:required="true" />
    

    如果您不需要它并想在运行时检查,您可以像这样使用 PackageManager:

    PackageManager.hasSystemFeature(PackageManager. FEATURE_CAMERA_FRONT);
    

    【讨论】:

    • 感谢您的回复,但该功能仅在 Gingerbread (2.3) 上可用,我需要使用未真正记录的三星相机开关 API 在 2.1/2.2 设备上使用此功能。
    • AndroidManifest 部分仍然可以工作。除此之外,真的没有办法做到这一点。 Android 核心在 2.3 之前不支持前置摄像头,因此在早期版本中实现此功能的唯一方法是使用特定于设备的扩展。
    猜你喜欢
    • 2011-05-13
    • 1970-01-01
    • 2012-07-22
    • 1970-01-01
    • 1970-01-01
    • 2018-02-13
    • 2014-03-07
    • 1970-01-01
    相关资源
    最近更新 更多