为什么在不同的Android手机上正常拍照?

时间:2011-07-20 07:50:19

标签: android api camera android-intent photo

我制作了一个程序,其主要功能是使用API​​来拍照并将它们存储在我给出的路径中。

但是,与我在模拟器或使用Google原始ROM的手机上测试时相比,不同手机上的内容并不合适。

理论上。如果我给出了Intent的路径,那么照片不应出现在手机的默认图库中,但是在MOTO Defy上,照片存储在我的路径和默认图像目录中。在三星上,当我从相机Intent返回时,我的应用程序会无声地崩溃。只有在某些手机上我可以通过按相机活动中的菜单按钮调出菜单。甚至其中一些将照片保存为我在Camera Activity的设置菜单中设置的尺寸。

我认为这是因为制造商在手机上定制了ROM,因此Camera Activity的行为不同。

任何人都知道如何避免这种情况?或者是否有其他方式拍摄照片而不是意图"android.media.action.IMAGE_CAPTURE"

以下是我拍摄照片的代码。

    Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
    intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(getpath()+"_.jpg")));
    intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
    startActivityForResult(intent, 0);

2 个答案:

答案 0 :(得分:1)

当我尝试时,@ balban shah提供的方式完全相同。

最后我发现这是因为不同的制造商定制他们的Rom,包括Camera应用程序,所以最好的方法是不要调用默认的相机应用程序,而是我们可以编写一个活动使用hardware.camera来拍照。互联网上也有很多例子。

答案 1 :(得分:0)

尝试使用此代码将其他设置保持相同以进行照片捕获

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(origImageFile));
startActivityForResult(cameraIntent, 0);