1

我有一个问题,我正在使用相机应用程序拍照,并且在我有机会在我的应用程序中使用它之前,照片被删除了。似乎只发生在某些设备上(三星 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(); 

                }
4

1 回答 1

0

抱歉,这个问题解决了。老实说,我等了一周才在这个论坛上发帖。我知道,只要我发布它,我就会找出答案。

旋转的应用程序是赠品。它正在重新创建活动,因此它正在重新运行 onCreate 方法。对于“管家”,我删除了临时文件夹中的文件。我在“onCreate”中执行此操作。因此,当 onCreate 重新运行时,它会删除相机放在 Temp 文件夹中的照片。

于 2012-05-08T17:03:00.520 回答