我遇到了一个问题,我正在使用相机应用拍照&该照片在我有机会在我的应用中使用之前被删除。似乎只发生在某些设备上(三星Galaxy S2,三星Galaxy Tab 10.1和LG,不记得该型号)。我的应用程序中的每个活动都将屏幕方向设置为纵向(清单:android:screenOrientation =“portrait”)。我如何重现问题: 1.从我的应用程序中点击“拍照”按钮,这将加载相机应用程序。 2.以纵向拍照,在合适的位置创建文件(基于我提供的URI)&在相机应用中显示预览。 3.保持设备在肖像&中点击“保存图像”(这会将您带回我的应用程序)。 4.当我回到我的应用程序时,我检查文件是否存在,而不是。Android - 相机意图 - 删除照片
如果以纵向拍摄照片,然后将设备旋转到横向(当显示预览时),然后点击“保存图像”(横向时),照片不会被删除。
如果以横向模式拍摄照片(并在保存时让设备保持横向),照片不会被删除。
如果以横向拍摄照片,然后将预览旋转为纵向,照片不会被删除。
我读过&谷歌搜索&已经拉出我的头发试图找出这一个。
当拍摄照片&保存为肖像时,当我的应用程序返回到我的应用程序时,我的应用程序在横向,然后旋转到肖像。
任何帮助(即使它是一个链接到另一个职位有答案)赞赏!
谢谢:)
下面是我的一些代码(时出现问题,_cameraFileUri为null):
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();
}
注意:startActivityForResult实际上被包围在它自己的例程中的try/catch块中。 if(_cameraFileUri! - null)在“onActivityResult”中,在检查结果代码等的代码块中,我忽略了从我的帖子和重读后的所有内容,这看起来有点奇怪。想澄清:) – Chris
老实说,我在这个论坛发帖之前等了好一个星期。我知道,只要我发布它,我会找出答案。 旋转的应用程序是免费的。它重新创建活动,因此它正在重新运行onCreate方法。对于“管家”我删除我的临时文件夹中的文件。我在“onCreate”中这样做。 因此,应用程序旋转,重新通过“onCreate”,它从存储(杜)删除我的临时文件。 :) – Chris
好你想通了。我花了一些时间才意识到你在告诉你解决了它。让你的评论更加清晰,以免任何一位elsse花时间去调查 – png