Ваша ошибка говорит нам, что в месте совпадения нет файла, который передается в функцию. Есть несколько способов сделать это, один из них как показано. После принятия разрешений на доступ к папкам и файлам это должен быть один из самых простых способов. Вы, кажется, близки:
public void OpenPdfFile(string filename)
{
var f = new Java.IO.File(filename);
if (f.Exists())
{
System.Diagnostics.Debug.WriteLine("File exists!");
try
{
var openFileIntent = new Intent(Intent.ActionView);
openFileIntent.SetDataAndType(Android.Net.Uri.FromFile(f), "application/pdf");
openFileIntent.SetFlags(ActivityFlags.NoHistory);
StartActivity(Intent.CreateChooser(openFileIntent, "Open pdf file"));
}
catch (ActivityNotFoundException)
{
//handle when no available apps
}
}
}
Я не проверял твою работу, но первым делом посмотрел бы, добавил ли ты это в файл манифеста
android:authorities="com.{package}.{name}.fileprovider"
так как ваш код говорит Application.Context.PackageName + ".fileprovider"