2

次のコードを使用して写真を撮っています。

private static final int TAKE_PHOTO_CODE = 1;

final Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(tFile));
startActivityForResult(intent, TAKE_PHOTO_CODE);

このコードは正常に機能しますが、撮影したすべての写真のコピーが自動的に「カメラ ショット」ギャラリーに表示され、写真を移動したい場所にも表示されます。

画像の自動コピーを停止するにはどうすればよいですか?

ファイル名も指定したものと同じではないので、簡単に削除できるわけではありません。

助けてくれてありがとう!

4

1 に答える 1

2

私は答えを見つけました。

次の機能は、メディア ストレージに保存された最後の写真を削除します。

public void deleteLastCapturedImage() {
    String[] projection = { 
            MediaStore.Images.ImageColumns.SIZE,
            MediaStore.Images.ImageColumns.DISPLAY_NAME,
            MediaStore.Images.ImageColumns.DATA, 
            BaseColumns._ID
    };

    Cursor c = null;
    Uri u = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;

    try {
        if (u != null) {
            c = managedQuery(u, projection, null, null, null);
        }
        if ((c != null) && (c.moveToLast())) {

            ContentResolver cr = getContentResolver();
            int i = cr.delete(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, BaseColumns._ID + "=" + c.getString(c.getColumnIndex(BaseColumns._ID)), null);

            Log.v(LOG_TAG, "Number of column deleted : " + i);

        }
    } finally {
        if (c != null) {
            c.close();
        }
    }
}

onActivityResult 内で上記の関数を呼び出してください。

于 2011-11-17T12:11:41.197 に答える