C # Xamarin. Изображения Android отображаются в файловом менеджере, а не в галерее - PullRequest
0 голосов
/ 02 декабря 2018

Я сделал заявку на сохранение фотографий на телефоне.

public void DownloadImage(string linkbitmap, string title)
    {           
        Bitmap bitmap = GetImageBitmapFromUrl(linkbitmap).Result;
        var path = Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryPictures + "/Tsundere");
        var complete = path.AbsolutePath;           
        var filepatch = System.IO.Path.Combine(complete, title + ".jpg");
        var filestream = new FileStream(filepatch, FileMode.Create);
        bitmap.Compress(Bitmap.CompressFormat.Png, 100, filestream);
        filestream.Close();
    }

Изображения отображаются в файловом менеджере, но в примере приложения Discord их нет.Я должен перезагрузить телефон, чтобы быть видимым.Как сделать фотографии сразу видимыми в других приложениях, таких как фотографии с камеры или фотографии, загруженные с Facebook?

Ответы [ 2 ]

0 голосов
/ 02 декабря 2018

Я решаю эту проблему.Просто добавьте MediaScannerConnection.ScanFile(Android.App.Application.Context, new string[] {path}, null, null); в коде описания этого класса https://developer.xamarin.com/api/type/Android.Media.MediaScannerConnection/

0 голосов
/ 02 декабря 2018

Создание действия намерения (Intent.ActionMediaScannerScanFile) с помощью uri, который включает путь к файлу:

using (var file = new Java.IO.File(path))
using (var uri = Android.Net.Uri.FromFile(file))
{
    var scanFileIntent = new Intent(Intent.ActionMediaScannerScanFile, uri);
    SendBroadcast(scanFileIntent);
}

К вашему сведению: вы можете создать / зарегистрировать BroadcastReceiver, который прослушивает Intent.ActionMediaScannerFinished, чтобы определить, когда медиаСканер завершил обработку вашего запроса.

...