AndroidManifest.xml中使用Meta-Data

时间:2022-12-28 01:08:22



AndroidManifest.xml中使用Meta-Data


 有时候你有这方面的需要,建立了一些app-wide配置信息在一个android应用程序或需要创建一个类,可以用于多个项目的设置与一个通用的方式配置的价值观。这是特别有用的API钥匙,为事物像在程序可能会不同,但应该是可访问在同样的方式。有几种方法来做这件事,但我是来更喜欢是加入一个元数据节点在AndroidManifest.xml文件。

       这一领域可以用来储存一个布尔值、浮动,智力,或字符串,以后访问的数据类型为你束方法(例如,getInt())。这里是一个例子,如何定义有价值的AndroidManifest.xml:

Java代码:

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="com.example.readmetadata"

android:versionCode="1"

android:versionName="1.0">

<application android:icon="@drawable/icon" android:label="@string/app_name">

<activity android:name=".MainMenu" android:label="@string/app_name">

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

</activity>

<meta-data android:name="my_api_key" android:value="mykey123" />

</application>

<uses-sdk android:minSdkVersion="3" android:targetSdkVersion="8" />

</manifest>


复制代码


       阅读这篇文章的元数据只需要几行Java:

Java代码:


try {

ApplicationInfo ai = getPackageManager().getApplicationInfo(activity.getPackageName(), PackageManager.GET_META_DATA);

Bundle bundle = ai.metaData;

String myApiKey = bundle.getString("my_api_key");

} catch (NameNotFoundException e) {

Log.e(TAG, "Failed to load meta-data, NameNotFound: " + e.getMessage());

} catch (NullPointerException e) {

Log.e(TAG, "Failed to load meta-data, NullPointer: " + e.getMessage());

}


复制代码


        ContextWrapper活动延伸,它有一个getPackageManager()方法。 方法的作用是:返回的,这是用于PackageManagerApplicationInfo,传球包名和元数据国旗。 返回的ApplicationInfo包含一个字段、元数据,这是一束所包含的所有元数据。第4行取一个字符串,是相同的:名称“参数”机器人在XML

       那听起来比看上去的复杂,它确实是。基本上,如果你有一个活动,你可以拿你的维管束,元数据从AndroidManifest并使用它在整个应用程序。本人只理解这么些,希望高手多多的指教。这样我也可以更快的进步,进而缩小我和高手的差距。在这里谢谢武林高手了。