如何打开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的新手。请提出解决方案。

如何打开xamarin格式的下载文件

对于您的通知,您可以创建一个带有IntentPendingIntent,它在文件上具有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;
         }                   
   }