很奇怪,因为在我测试的三个设备中,只有Google Nexus S 4.0.3存在这个问题。我正在启动本机相机应用程序来拍照,但我不关心图像保存到哪里,所以没有指定位置,希望它会保存到默认位置,但是根本没有保存任何位置!在Galaxy S2和Samsung Skyrocket(都是2.3.x版本)上运行良好。下面是我用于启动应用程序的代码。
我尽量保持简单易懂,但还是有些困惑!有人知道 Nexus S 相机的特殊问题吗?
编辑:看起来 Nexus S 的相机应用程序会在 onActivityResult 中保存文件,因为我启动了本地相机应用程序并没有在返回时保存图像,所以它不会保存。有人知道这是否属实?有见过这种行为吗?
编辑:没有人见过这个问题吗?我很难相信我是第一个遇到这个问题的人...
编辑:好吧,在继续努力后,我尝试将 URI 添加到意图的 EXTRA_OUTPUT 中,就像这样:
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));