2

画像キャプチャのインテントを使用して、電話のアプリケーションを使用して写真を取得するプログラムを作成しました。MediaStore.EXTRA_OUTPUT を使用して、画像への URI を取得します。これをパスに変換すると、「/external/images/media/NN」のような結果になります。ここで、NN は写真の番号です。

さて、私のプログラムでは、画像を読み取って操作した後、その画像を削除したいと考えています。

どうすればいいですか?

(File image = new File(path); image.delete(); // returns false, so doesn't work)
4

2 に答える 2

1

答えてくれてありがとう。

この回答を読んで解決しました。写真をファイルに保存する際の問題

私にとっては、そのコードのコメントで、Hero の動作が異なると述べていても、Hero で動作します。これで、「/sdcard/image.tmp」にイメージが取得され、削除できるようになりました。これが最善の解決策だと思います。なぜなら、カメラ アプリを自分のアプリ ディレクトリに書き込もうとするのは面倒だと思うからです。

再度、感謝します。

于 2010-10-18T08:35:16.603 に答える
0

アプリで WRITE_EXTERNAL_STORAGE パーミッションをリクエストできなかった可能性はありますか? これにより、削除が失敗します。(カメラは独自の権限を持つ別のアプリであるため、関係なく書き込むことができます。)

また、メディア フォルダーがカメラ アプリによってのみ書き込み可能である可能性もあります (可能性は低いですが)。その場合、カメラを呼び出すインテントの EXTRA_OUTPUT エクストラで別の目的の宛先を指定して、ファイルがアプリのディレクトリに書き込まれます。実際、プライベート リソースをすぐに削除する場合でも、プライベート リソースでグローバル スペースが乱雑になるのを避けるために、とにかくそれを実行する必要があります。

于 2010-10-14T18:39:43.353 に答える