我有一个问题,我正在使用相机应用程序拍照,并且在我有机会在我的应用程序中使用它之前,照片被删除了。似乎只发生在某些设备上(三星 Galaxy S2、三星 Galaxy Tab 10.1 和 LG,不记得型号)。我的应用程序中的每个活动都将屏幕方向设置为纵向(清单:android:screenOrientation="portrait")。我如何重现问题: 1. 从我的应用程序中点击“拍照”按钮,这会加载相机应用程序。2. 拍摄纵向照片,在适当的位置创建文件(基于我提供的 URI)并在相机应用程序中显示预览。3. 保持设备纵向并点击“保存图像”(这会将您带回我的应用程序)。4. 当我返回我的应用程序时,我检查文件是否存在,但它不存在。
如果您以纵向拍摄照片,然后将设备旋转到横向(显示预览时),然后点击“保存图像”(在横向时),照片不会被删除。
如果您以横向拍摄照片(并在您点击保存时将设备保持在横向),则不会删除照片。
如果您以横向拍摄照片,然后将预览旋转为纵向,则不会删除照片。
我已经阅读并在谷歌上搜索过,并且已经拔出头发试图弄清楚这一点。
当照片被拍摄并保存为纵向时,当返回我的应用程序时,我的应用程序处于横向状态,然后旋转为纵向。
感谢您提供任何帮助(即使它是指向另一个有答案的帖子的链接)!
谢谢 :)
这是我的一些代码(发生问题时,_cameraFileUri 为空):
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
_cameraFileUri = Uri.fromFile(new File(_tempFolder, "tempFromCamera.jpg"));
intent.putExtra(MediaStore.EXTRA_OUTPUT, _cameraFileUri); // set the image file name
// start the image capture Intent
startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
if (_cameraFileUri != null) {
File origFile = new File(_cameraFileUri.getPath());
resizePhoto(origFile);
showPhoto();
} else {
Toast.makeText(getApplicationContext(), "Error: Capture Photo Failed.", Toast.LENGTH_LONG).show();
}