android - 为什么在不同的安卓手机上正常拍照这么难?

标签 android api camera android-intent photo

我做了一个程序,主要功能是用API拍照,然后把照片存到我给的路径里。

但与我在模拟器或使用 Google 原始 ROM 的手机上进行测试时相比,不同手机上的结果不尽相同。

理论上。如果我给 Intent 一个路径,照片不应该出现在手机的默认图库中,但在 MOTO Defy 上,照片存储在我的路径和默认图像目录中。在三星上,我的应用程序在从相机 Intent 返回时无声崩溃。只有在某些手机上,我才能通过按相机 Activity 中的菜单按钮调出菜单。甚至其中一些将照片保存为我在 Camera Activity 的设置菜单中设置的大小。

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

有人知道如何避免这种情况吗?或者是否有任何其他方式不是按 Intent 拍摄照片 "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);

最佳答案

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

最后我发现是因为不同厂商定制了他们的Rom,包括Camera app,所以最好的办法是不要调用默认的camera app,而是我们可以写一个activity使用hardware.camera来拍照片。互联网上也有很多这方面的例子。

关于android - 为什么在不同的安卓手机上正常拍照这么难?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6758671/

相关文章:

node.js - 如何使用适合移动设备的后置摄像头

android - 模拟器:错误:无法加载OpenGLES仿真库

android - 测量在 Android 应用程序上花费的时间

api - 支付宝 API : How do I update a subscription's credit card?

azure - azure graph api是否支持用户解析?

api - 有什么方法可以使用 yelp 的 URL 获取业务数据?

c++ - 使用 Absdiff 的 OpenCV 背景减法

java - 如何处理 JSON 对象中的唯一动态 ID?

java - Java/Android 中的 Firebase : The transaction was overridden by a subsequent set

javascript - IP 摄像头/光传感器 Node.js