如何在没有加速计传感器的情况下启动相机意图?

时间:2012-01-21 14:47:50

标签: android camera orientation accelerometer sensor

我正在编写一个需要捕获一些图像的应用程序。我使用这样的意图启动相机应用程序:

if (v.equals(btnCap)) {
        Intent cameraIntent = new Intent(
                android.provider.MediaStore.ACTION_IMAGE_CAPTURE);

        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
        startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);
    }

问题是:当我倾斜设备时,相机上的按钮仍会改变方向,而我收到的照片不是纵向的。

有人知道如何在纵向模式下拍摄图像,即使设备是倾斜的吗?

提前致谢, 阿德里安

2 个答案:

答案 0 :(得分:1)

您最好选择创建自己的相机应用(http://developer.android.com/guide/topics/media/camera.html#custom-camera)。

然后,在AndroidManifest.xml中,在活动声明中添加android:screenOrientation="portrait"选项。

最好建立自己的相机活动,因为根据设备型号可能会出现获取图片的问题。我曾经遇到过三星设备的问题(参见Android Samsung: Camera app won't return intent.getData()

答案 1 :(得分:1)

使用setDisplayOrientation (int degrees)它将完成工作

如果您使用自己的相机,可以像这样使用它

camera.setDisplayOrientation(90);

http://code.google.com/p/android/issues/detail?id=1193#c42