C#Xamarin.Android图像显示在文件管理器中,而不显示在图库中

时间:2018-12-02 13:02:21

标签: c# android xamarin xamarin.android gallery

我制作了一个将照片保存在手机上的应用程序。

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();
    }

图片显示在文件管理器中,但在示例中,不和谐的应用程序没有图片。我必须重新启动手机才能看到它。如何使照片在其他应用程序中立即可见,例如从相机拍摄的照片或从Facebook下载的照片?

2 个答案:

答案 0 :(得分:0)

使用包含文件路径的uri构造Intent操作(Intent.ActionMediaScannerScanFile):

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);
}

FYI:您可以创建/注册一个侦听Intent.ActionMediaScannerFinished的BroadcastReceiver,以确定何时介质扫描仪完成处理您的请求。

答案 1 :(得分:0)

我解决了这个问题。只需在代码中添加MediaScannerConnection.ScanFile(Android.App.Application.Context, new string[] {path}, null, null); 描述此类https://developer.xamarin.com/api/type/Android.Media.MediaScannerConnection/