我制作了一个将照片保存在手机上的应用程序。
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下载的照片?
答案 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/