如何打开xamarin格式的下载文件
本文关键字:下载 文件 格式 何打开 xamarin | 更新日期: 2023-09-27 18:09:55
在我的Xamarin表单中,我使用Web客户端在Android应用程序中下载了一个文件。它保存在本地文件夹中。这将提到使用android通知如下代码
webClient.DownloadFile(filePath, localPath);
Notification.Builder builder = new Notification.Builder(Android.App.Application.Context)
.SetContentTitle("Download Successfully")
.SetContentText("Click here to open")
.SetSmallIcon(Resource.Drawable.abc_btn_colored_material);
Notification notification = builder.Build();
NotificationManager notificationManager =
Android.App.Application.Context.GetSystemService(Context.NotificationService) as NotificationManager;
const int notificationId = 0;
notificationManager.Notify(notificationId, notification);
我想从通知中打开下载的文件。我怎么能那样做。我是Xamarin的新手。请提出解决方案。
对于您的通知,您可以创建一个带有Intent
的PendingIntent
,它在文件上具有Action View。这看起来像:
var mimeTypeMap = MimeTypeMap.Singleton;
var mimeType = mimeTypeMap.GetMimeTypeFromExtension(System.IO.Path.GetExtension(filePath));
var intent = new Intent();
intent.SetAction(Intent.ActionView);
intent.SetDataAndType(Android.Net.Uri.Parse(filePath), mimeType);
var pendingIntent = PendingIntent.GetActivity(this, 0, intent, PendingIntentFlags.OneShot);
然后在Notification
生成器中设置Intent
:
notification.SetContentIntent(pendingIntent);
现在,您为Intent
提供的filePath必须位于Android上所有应用程序都可以访问的位置,否则打开它将失败。因此,当您保存文件时,请将其保存到公共场所的外部存储中。
我使用这个
var docSaved = await DisplayActionSheet("Saved", "Open", "Ok", "File was successfull);
switch (docSaved)
{
case "Open":
{
Device.OpenUri(new Uri(Your_FilePath));
break;
}
case "Ok":
{
break;
}
}