所以这有点奇怪,因为在我正在测试的三款设备中,我只在 4.0.3 的 Google Nexus S 上遇到了这个问题。我正在启动本机相机应用程序拍照,我不在乎图像保存到哪里,所以我不指定,希望它会保存到默认位置,但没有保存位置全部!
在 Galaxy S 2 和 Samsung Skyrocket(都带有 2.3.something)上运行良好。
我用来启动应用程序的代码
Intent camIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(camIntent, TAKE_PHOTO);
return true;
我保持它非常简单,这就是我感到困惑的原因!有谁知道 Nexus S 的相机特有的任何问题?
编辑:似乎 Nexus S 的相机应用程序可能会将文件保存在某个 onActivityResult 中,并且由于我启动了本机相机应用程序并且在返回时不保存图像,因此它不会保存它。有人知道这是真的吗?看到这种行为了吗?
编辑:没有人见过这个?我很难相信我是第一个遇到这种情况的人...
编辑:好的,在进行了更多工作之后,我尝试将 URI 添加到意图的 EXTRA_OUTPUT 中,如下所示:
camIntent.putExtra(MediaStore.EXTRA_OUTPUT,
Uri.parse(folderPath + String.format("%d.jpg", System.currentTimeMillis())));
现在我看到了这里描述的行为:Android ACTION_IMAGE_CAPTURE Intent,当我点击确定时相机应用程序不做任何事情,并且事先创建文件也不起作用,因为我尝试这样:
File f = new File(folderPath, filename);
f.createNewFile();
camIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.parse(folderPath + filename));