在Xamarin.Android中获取文件内容的最佳做法是什么?

问题描述 投票:1回答:1

我已经通过以下方式在我的清单中注册了一个FileProvider:

<provider android:name="android.support.v4.content.FileProvider"
          android:authorities="${applicationId}.provider"
          android:exported="false" android:grantUriPermissions="true">
  <meta-data android:name="android.support.FILE_PROVIDER_PATHS"
             android:resource="@xml/provider_paths" />
</provider>

现在,我想获取该文件的URI以传递给另一个应用程序以打开该文件。我试过了:

Intent viewIntent = new Intent(Intent.ActionView);
Java.IO.File document = new Java.IO.File(filePath);
Android.Net.Uri contentUri = FileProvider.GetUriForFile(
    _context, Android.Support.FILE_PROVIDER_PATHS, document);

viewIntent.SetDataAndType(contentUri, GetMimeType(document));
viewIntent.SetFlags(ActivityFlags.NewTask);
viewIntent.AddFlags(ActivityFlags.GrantReadUriPermission);
Intent chooser = Intent.CreateChooser(viewIntent,
    "Which program shall open the file?");
chooser.SetFlags(ActivityFlags.NewTask);
chooser.AddFlags(ActivityFlags.GrantReadUriPermission);

_context.StartActivity(chooser);

不幸的是,我似乎无法以这种方式解决qazxsw poi问题。如何尽可能清楚地获取我的URI?

xamarin xamarin.android android-fileprovider
1个回答
0
投票

Android.Support.FILE_PROVIDER_PATHS完成这项工作(_context.PackageName + ".provider"_context):

Android.Content.Context
© www.soinside.com 2019 - 2024. All rights reserved.