我制作了一个程序,其主要功能是使用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);
答案 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);