2016-10-03 70 views
0

在我的Xamarin表格中,我使用Web客户端在Android应用程序中下载了一个文件。它保存在本地文件夹中。 这会提到使用Android通知如下代码如何在xamarin表单中打开下载的文件?

  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新手。请建议解决方案。

回答

0

对于您的通知,您可以创建一个PendingIntentIntent,该文件具有操作视图。这看起来是这样的:

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

然后你设置IntentNotification建设者:

notification.SetContentIntent(pendingIntent); 

现在,文件路径你给Intent必须的地方,是在Android上的所有应用程序访问,否则打开它将失败。因此,当您保存该文件时,请将其保存到公共场所的外部存储中。

+0

新的Android.Net.Uri(filePath)显示不能创建接口的抽象类的实例Uri –

+1

对不起,应该是'Uri.Parse(filePath)'。 – Cheesebaron