2011-07-20 25 views
5

我做了一个程序,其主要功能是使用API​​来拍照并将它们存储在我给出的路径中。为什么通常在不同的Android手机上拍照很困难?

但是,当我在模拟器或手机上使用Google的原始ROM进行测试时,不同手机上的信息并不一致。

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

我认为这是因为制造商在手机上定制了ROM,所以相机活动的行为不同。

任何人都知道如何避免这种情况?或者有没有其他方式可以拍照而不是意图"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); 

回答

1

是@balban沙阿所提供的工作方式都当我试图相同。

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

0

尝试使用此代码保存为其他照片拍摄设置相同

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