如何从 Xamarin.Froms 中的 AndroidManifest.xml 访问元数据 [英] How to access metadata from AndroidManifest.xml in Xamarin.Froms
本文介绍了如何从 Xamarin.Froms 中的 AndroidManifest.xml 访问元数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试从 Xamarin.Forms Android 项目中的 AndroidManifest.xml 访问元数据.
I'm trying to access metadata from AndroidManifest.xml in Xamarin.Forms Android project.
我有这个代码:
var ai = CrossCurrentActivity.Current.Activity.PackageManager
.GetApplicationInfo(CrossCurrentActivity.Current.Activity.PackageName,
PackageInfoFlags.MetaData);
var meta = ai.MetaData;
问题是,ai.Metadata 为 NULL.知道出了什么问题吗?谢谢.
Problem is, that ai.Metadata is NULL. Any idea what is wrong? Thanks.
AndroidManifest.xml:
AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="auto" package="com.my.test.x2.x8" android:versionName="15.0" android:versionCode="15">
<uses-sdk android:minSdkVersion="15" />
<application android:label="MyApp" android:icon="@drawable/Icon"></application>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application>
<meta-data android:name="MYENDPOINT" android:value="https://xxx.azurewebsites.net/" />
</application>
</manifest>
推荐答案
将您的 meta-data
放在您的现有 应用程序跨度中并删除另一个,即:
Place your meta-data
inside your existing application span and remove the other one, i.e.:
<application android:label="MyApp" android:icon="@drawable/Icon">
<meta-data android:name="MYENDPOINT" android:value="https://xxx.azurewebsites.net/" />
</application>
用法:
var bundle = PackageManager.GetApplicationInfo(PackageName, Android.Content.PM.PackageInfoFlags.MetaData).MetaData;
foreach (var key in bundle.KeySet())
{
Log.Debug("SO", $"{key} : {bundle.GetString(key)}");
}
输出:
08-03 09:18:56.642 3519 3519 D SO : MYENDPOINT : https://xxx.azurewebsites.net
这篇关于如何从 Xamarin.Froms 中的 AndroidManifest.xml 访问元数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文