Я создаю приложение, которое позволяет пользователю сохранять растровое изображение или делиться им, не сохраняя его. 2-й функционал не совсем работает. Я понимаю, что приложению необходимо сохранить файл на устройстве, прежде чем делиться им в приложении для социальных сетей, поэтому моя идея заключалась в том, чтобы сразу же после успешного обмена файлом автоматически удалить файл с устройства. Я создал метод удаления, используя два разных подхода, но ни один из них не сработал:
Первый подход:
public void deleteFile(String path){
File file = new File(path);
try {
file.getCanonicalFile().delete();
} catch (IOException e) {
e.printStackTrace();
}
}
Второй подход:
public void deleteFile(String path){
File file = new File(path);
boolean deleted = file.delete();
}
И я звоню deleteFile(String)
из метода обмена:
public void shareMeme(Bitmap bitmap) {
String path = MediaStore.Images.Media.insertImage(Objects.requireNonNull(getContext()).getContentResolver(), bitmap, "Meme", null);
Uri uri = Uri.parse(path);
Intent share = new Intent(Intent.ACTION_SEND);
share.setType("image/*");
share.putExtra(Intent.EXTRA_STREAM, uri);
share.putExtra(Intent.EXTRA_TEXT, "This is my Meme");
getContext().startActivity(Intent.createChooser(share, "Share Your Meme!"));
deleteFile(path);
}