从Froyo到冰淇淋三明治就是这样:
Intent intent = new
Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File file = new File(Environment.getExternalStorageDirectory(), "test.jpg");
tempUriCameraDeviceNotSuported = Uri.fromFile(file);
intent.putExtra(MediaStore.EXTRA_OUTPUT,
tempUriCameraDeviceNotSuported);
startActivityForResult(intent, 0);
但是对于Jelly Bean它不起作用,你必须做这样的事情:
Intent takePicture = new Intent(
MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(takePicture, 0);
我不确定这个bug是否仅在软糖豆中发生,或者它还取决于硬件模型。谷歌没有说出这个问题(为什么?为什么?)。有人知道在哪里可以找到包含所有设备及其正确相机实现的列表?有人知道最好的方法吗?
答案 0 :(得分:1)
您始终可以检查操作系统版本:
if (android.os.Build.VERSION.SDK_INT >= 17) {
Intent takePicture = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(takePicture, 0);
} else {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File file = new File(Environment.getExternalStorageDirectory(),
"test.jpg");
tempUriCameraDeviceNotSuported = Uri.fromFile(file);
intent.putExtra(MediaStore.EXTRA_OUTPUT,
tempUriCameraDeviceNotSuported);
startActivityForResult(intent, 0);
}
答案 1 :(得分:1)
从Frojo到Icre cream这是的方式
请理解您正在使用代码执行的操作是让随机应用为您拍照。随机应用可能是:
MediaStore.ACTION_IMAGE_CAPTURE
恰好驻留在设备上的任何其他内容但对于果冻豆它不起作用
才华横溢的程序员会解释“它不起作用”的含义。
我不确定这个错误是否仅在果冻豆中发生
才华横溢的程序员会解释“这个错误”是什么。
除此之外,Android本身几乎没有任何关系。最有可能的错误是你在那个“果冻豆”设备上使用的相机应用程序。
谷歌没有说出这个问题(为什么?,为什么?)。
有才能的程序员会更详细地解释“问题”的内容而不是“它不起作用”。
有人知道在哪里可以找到包含所有设备及其正确相机实施的列表?
有超过1,000款Android设备。我有理由相信Play商店和其他地方有超过1,000个应用程序是“相机应用程序”或支持MediaStore.ACTION_IMAGE_CAPTURE
。这意味着您的列表中有超过1,000,000个设备和应用程序组合。欢迎您自己开发这样的列表。
如果您认为MediaStore.ACTION_IMAGE_CAPTURE
对您的案件不可靠,欢迎您使用android.hardware.Camera
自行拍照。
此外,FWIW,this sample app使用与第一个代码段相同的代码,在运行Android 4.2.1的Galaxy Nexus和运行Android 4.1.2的Nexus S上运行良好。这是“果冻豆”。
答案 2 :(得分:0)
检查我的示例,实际上它适用于2.3.3和4.1和4.2试一试!