Я создал приложение, которое делает снимки, используя Xamarins CrossMedia.Current.TakePhotoAsyn c
Это работает почти идеально, но я не могу остановить его, сохраняя одно и то же изображение дважды.
Вот как я создаю изображение:
var file = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
{
PhotoSize = Plugin.Media.Abstractions.PhotoSize.Medium,
RotateImage = true,
AllowCropping = true,
Name = "photo1.jpg",
SaveToAlbum = false,
DefaultCamera = CameraDevice.Rear,
});
Здесь хранится изображение:
/storage/emulated/0/Android/data/XamarinCamera.XamarinCamera/files/Pictures/photo1.jpg
Но также сохраняется и в галерее с
\Internal shared storage\DCIM\Camera\IMG_20200123_162022.jpg
Как программно удалить 2-е изображение, как только оно сохранит 1-е изображение?
Я намерен удалить оба изображения в конце, но мне нужно только 1-е изображение, пока пользователь не завершит еще пара шагов.
file.Path; возвращает только первый путь, поэтому я знаю второй путь только после просмотра папки.
Я использую Android 7.0
Я не могу повторить это на моем S10, который использует Android 9.0 (что не хранит изображение в галерее.)
**** Редактировать ****
Я также пытался скопировать второе имя файла с
"IMG_" + DateTime.Now.ToString("yyyyMMdd_HHmmss") + ".jpg";
Но это не не работает, потому что пользователь должен нажать OK или Повторить после съемки изображения, поэтому, если они ждут секунду или нажимают повтор, я создал неправильное имя файла.
**** Редактировать 2 *** *
Я пытался сохранить его в альбом и найти путь оттуда, но теперь он сохраняется в 3 каталогах xD. Из моего кода я могу только установить / получить имя файла photo1, которое я и установил. Мне нужно знать имя файла 2-го изображения, чтобы я мог затем удалить его.
Вот 1-й:
/storage/emulated/0/Android/data/XamarinCamera.XamarinCamera/files/Pictures/photo1.jpg
Здесь 2-й:
/Internal shared storage/DCIM/Camera/IMG_20200123_165130.jpg
Здесь 3-й :
/storage/emulated/0/Pictures/temp/photo1.jpg