android студия удалить изображение из галереи устройства с URI - PullRequest
0 голосов
/ 22 апреля 2020

Я пытаюсь удалить изображение, которое я только что сохранил на устройстве.

У меня есть Uri, который я намеренно передаю действию, и я хочу использовать этот Uri для удаления изображения.

Uri разрешается в это

file:///data/user/0/com.example.jdapp/cache/cropped

Это код, который я получил из другого ответа stackoverflow, но он не работает:



    private void deleteImage() {

        Uri uri = (Uri) getIntent().getParcelableExtra("dest");

//        File file = new File(uri.getPath());//create path from uri
//        file.delete();

        File fdelete = new File(getFilePath(uri));

        if (fdelete.exists()) {
            if (fdelete.delete()) {
                Toast.makeText(actClassifyImage.this, "Deleted", Toast.LENGTH_LONG).show();
            } else {
                Toast.makeText(actClassifyImage.this, "Not Deleted", Toast.LENGTH_LONG).show();
            }
        }


    }


    //getting real path from uri
    private String getFilePath(Uri uri) {

        String[] projection = {MediaStore.Images.Media.DATA};

        Cursor cursor = getContentResolver().query(uri, projection, null, null, null);

        if (cursor != null) {

            cursor.moveToFirst();

            int columnIndex = cursor.getColumnIndex(projection[0]);
            String picturePath = cursor.getString(columnIndex); // returns null
            cursor.close();
            return picturePath;
        }

        return null;

    }

В эту строку всегда возвращается нулевое значение

        File fdelete = new File(getFilePath(uri));

Кто-нибудь знает, куда я иду? не так?

Спасибо

...