1

カメラ アプリを使用して写真を撮っているのに、アプリで使用する機会を得る前に写真が削除されるという問題があります。特定のデバイスでのみ発生するようです (Samsung Galaxy S2、Samsung Galaxy Tab 10.1、および LG。モデルは覚えていません)。私のアプリの各アクティビティは、画面の向きを縦に設定します (マニフェスト: android:screenOrientation="portrait")。問題の再現方法: 1. アプリから「写真を撮る」ボタンを押すと、カメラ アプリが読み込まれます。2. 縦向きで写真を撮ります。これにより、(提供した URI に基づいて) 適切な場所にファイルが作成され、カメラ アプリでプレビューが表示されます。3.デバイスを縦向きにして「画像を保存」を押します(これで私のアプリに戻ります)。4. アプリに戻ると、ファイルが存在するかどうかを確認しますが、存在しません。

写真を縦向きでスナップし、デバイスを横向きに回転させ (プレビューが表示されている場合)、[画像を保存] をクリックすると (横向きの状態で)、写真は削除されません。

横向きで写真を撮った場合 (保存を押したときにデバイスを横向きのままにしておく場合)、写真は削除されません。

写真を横向きでスナップし、プレビューを縦向きに回転させても、写真は削除されません。

私は読んでグーグルで検索し、これを理解しようとして髪を引っ張りました。

写真を縦向きで撮影して保存すると、アプリに戻ると、アプリが横向きになり、縦向きに回転します。

どんな助けでも(答えがある別の投稿へのリンクであっても)大歓迎です!

ありがとうございました :)

これが私のコードの一部です(問題が発生した場合、_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(); 

                }
4

1 に答える 1

0

申し訳ありませんが、これは解決済みです。正直なところ、このフォーラムに投稿する前に 1 週​​間待ちました。投稿したらすぐに答えがわかるだろうと思っていました。

アプリのローテーションは景品でした。アクティビティを再作成しているため、onCreate メソッドを再実行していました。「ハウスキーピング」の場合、一時フォルダーのファイルを削除します。これは「onCreate」で行います。そのため、onCreate が再実行されると、カメラが Temp フォルダーに保存した写真が削除されます。

于 2012-05-08T17:03:00.520 に答える