Как показать PDF из папки Custom Storage внутреннего в xmarine android c# App? - PullRequest
0 голосов
/ 13 февраля 2020

Я хочу показать файл pdf после загрузки (из папки Custom Storage) в моем приложении. Я хочу, чтобы пользователи могли выбирать предпочитаемые приложения, чтобы открыть его. Я использовал приведенный ниже код, но он не работает. Как я могу это сделать? enter image description here

string fileName = "qdummy.pdf";
Android.Net.Uri uri = Android.Net.Uri.Parse("file:///storage/emulated/0/TESTFOLDER/" + fileName);
Intent intent = new Intent(Intent.ActionView);
intent.SetDataAndType(uri, "application/pdf");
intent.SetFlags(ActivityFlags.ClearWhenTaskReset | ActivityFlags.NewTask);

try
{
    Application.Context.StartActivity(intent);
}
catch (Exception)
{
    Toast.MakeText(Application.Context, "No hay aplicacion instalada para ver PDF", ToastLength.Long).Show();
} 

1 Ответ

0 голосов
/ 18 февраля 2020

проблема решена,

try
                    {
                        string extension = MimeTypeMap.GetFileExtensionFromUrl(Android.Net.Uri.FromFile(file).ToString());
                        string mimeType = MimeTypeMap.Singleton.GetMimeTypeFromExtension(extension);
                        Intent intent = new Intent(Intent.ActionView);
                        intent.SetFlags(ActivityFlags.ClearTop | ActivityFlags.NewTask);
                        Android.Net.Uri path = FileProvider.GetUriForFile(Application.Context, Android.App.Application.Context.PackageName + ".provider", file);
                        intent.SetDataAndType(path, mimeType);
                        intent.AddFlags(ActivityFlags.GrantReadUriPermission);
                        Application.Context.StartActivity(Intent.CreateChooser(intent, "Choose App"));
                    }
                    catch (Exception ex)
                    {
                        Toast.MakeText(Application.Context, "problem", ToastLength.Long).Show();
                    }
...