AndroidManifest.xml中使用Meta-Data

来源:互联网 发布:淘宝卖家信誉 编辑:程序博客网 时间:2024/06/05 08:16

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

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

Java代码:

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

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

  3. package="com.example.readmetadata"

  4. android:versionCode="1"

  5. android:versionName="1.0">

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

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

  8. <intent-filter>

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

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

  11. </intent-filter>

  12. </activity>

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

  14. </application>

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

  16. </manifest>
复制代码


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

Java代码:

  1. try {

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

  3. Bundle bundle = ai.metaData;

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

  5. } catch (NameNotFoundException e) {

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

  7. } catch (NullPointerException e) {

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

  9. }
复制代码


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

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


转自:http://daixj110.iteye.com/blog/1162090