Я знаю, что сделать фотографию и сохранить ее в Галерее очень просто.
protected async Task TakePhoto()
{
var storageOptions = new StoreCameraMediaOptions()
{
SaveToAlbum = true,
Directory = pictureAlbumName,
Name = $"test_{DateTime.Now.ToString("HH_mm_ss_ff")}.jpg"
};
return await CrossMedia.Current.TakePhotoAsync(storageOptions);
}
В результате я получил URL-адрес, который выглядит следующим образом:
/storage/emulated/0/Android/data/com.companyname.appname/files/Pictures/MyAlbum/photo_18_47_29_69.jpg
Но когда я попытался сохранить изображение по байтам, оно появилось в папке, но никогда не появилось в галерее. После сохранения изображения я, конечно, попробовал просканировать вновь созданный путь, но эффекта не было
Первая попытка
File.WriteAllBytes("/storage/emulated/0/Android/data/com.companyname.appname/files/Pictures/MyAlbum/downloaded_image_223213a3as.jpg", imageBytes);
MediaScannerConnection.ScanFile(Application.Context, new string[] { path },null,null);
Вторая попытка с использованием устаревших методов Android
Java.IO.File storagePath = Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryPictures);
string path = System.IO.Path.Combine(storagePath.ToString(), filename);
System.IO.File.WriteAllBytes(path, imageByte);
var mediaScanIntent = new Intent(Intent.ActionMediaScannerScanFile);
mediaScanIntent.SetData(Android.Net.Uri.FromFile(new Java.IO.File(path)));
CurrentContext.SendBroadcast(mediaScanIntent);
Подробнее здесь: https://stackoverflow.com/questions/740 ... -and-above
Xamarin.Forms перемещает изображение в галерею в Android 12 и более поздних версиях ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как я могу открыть действие настроек тестирования в Android 11 и более поздних версиях?
Anonymous » » в форуме Android - 0 Ответы
- 28 Просмотры
-
Последнее сообщение Anonymous
-