Как программно получить значение полномочий провайдера из файла манифеста Android в формах Xamarin? - PullRequest
0 голосов
/ 17 июня 2019

Я разрабатываю Android с Xamarin.Forms и использую файл AndroidManifest.xml, показанный ниже.

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
      android:versionCode="1" android:versionName="1.0">
<uses-sdk android:minSdkVersion="26" android:targetSdkVersion="26" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<application android:label="MyApp.Android">
    <provider
        android:name="android.support.v4.content.FileProvider"
        android:authorities="myapp.fileprovider"
        android:exported="false"
        android:grantUriPermissions="true">
        <meta-data
          android:name="android.support.FILE_PROVIDER_PATHS"
          android:resource="@xml/provider_file_paths" />
    </provider>
</application>

Я бы хотел получить значение android:authorities директивы provider (в моем случае «myapp.fileprovider» в виде строки) программно. Как это возможно с Xamarin.Forms?

1 Ответ

0 голосов
/ 17 июня 2019

Я нашел ответ.

var context = Android.App.Application.Context;
var component = new Android.Content.ComponentName(context, Java.Lang.Class.FromType(typeof(Android.Support.V4.Content.FileProvider)));
var info = context.PackageManager.GetProviderInfo(component, Android.Content.PM.PackageInfoFlags.MetaData);
var authority = info.Authority;
...