在Android 2.2上拍摄前置和后置摄像头的照片

时间:2012-06-03 04:12:47

标签: android android-camera android-camera-intent

我正在设计一个使用相机拍摄照片的应用程序(2.2版)。

我从http://developer.android.com/sdk/android-2.3.html读到版本2.3及以上版本有多个摄像头支持。但我仍然有点困惑,因为当相机启动时,它通常有一个按钮,用户可以点击在前置摄像头和后置摄像头之间切换,对吧?

2.2没有这个开关?

我希望用户能够使用前后摄像头。是否可以在2.2版本上使用,还是应该使用2.3及以上版本?

2 个答案:

答案 0 :(得分:1)

是的,2.2只能管理后置摄像头。 对于正面相机,您需要升级到2.3 +。

private int getBestCameraId() {

        PackageManager pm = m_mainThreadContext.getPackageManager();

        try {
            if (pm.hasSystemFeature(PackageManager.FEATURE_CAMERA_FRONT)) {
                Log.i(TAG, "Phone has a frontal camera.");
                return Camera.CameraInfo.CAMERA_FACING_FRONT;
            } else {
                Log.i(TAG, "Phone has only rear camera.");
                return Camera.CameraInfo.CAMERA_FACING_BACK;
                }
        } catch (Exception e) {
                return Camera.CameraInfo.CAMERA_FACING_BACK;
    }

}

通过这个简单的功能,它可以检查手机是否有前置或后置摄像头,并返回最佳状态。 返回的id可以在Camera.open(id)中使用,以选择所需的摄像头。

如果在你的Manifest中你写道:

<uses-sdk android:minSdkVersion="8" />

你用图书馆2.3(或+)开发你的项目,我发布的功能就像一个魅力! 我用过相机项目,所以相信我;)

答案 1 :(得分:0)

请参阅此this&amp; this

对于API&gt; = 9,您可以使用Camera class查看它是否有多个摄像头,并查询CameraInfo

getNumberOfCameras

getCameraInfo:

对于Android 2.2及更低版本,在其SDK中支持单个摄像头。