介绍

Android在提供了meta-date使用键值对的形式实现自定义配置。一般使用中作为渠道标识。可以用在,, , ,节点下。所有的值存储在同一个Bundle里面,可以使用 PackageItemInfo.metaData渠道这些数据。

使用形式:

resource 和 value直接用一个即可,但是注意如果使用

 android:name="zoo" android:value="@string/kangaroo" />
那么得到的是ID值,也就是在R文件里面的数字,不是实际资源值。而要 使用resource来取资源值(使用getInt()获取)。

 android:name="zoo" android:resource="@string/kangaroo" />

android:name:确保是唯一的就OK了。

android:value:值可以是:

1.字符串 使用getString()获取

2.整数 如“100” 使用getInt()获取

3.布尔值:“true”,"false" 使用getBoolean()获取

4.颜色值:  "#rgb", "#argb", "#rrggbb", 或者 "#aarrggbb" 使用getInt()获取

5.浮点值 :“1.2” 使用getFloat()

注意:Bundle中使用的是return (String) o;来获取的代码获取一个StringValue值的,如果你配置的想配置的一个字符串的值是“000”时,但是在将metadata包装成bundle的时候,"000"被解析成整数0,所以使用getString()获取的会是null。

实例:

在Manifest节点里最后加上:
在自定义的Application里面一个方法:
/** * 获取Manifest里面配置的渠道版本 * 

2014-11-14

* @return * @author RANDY.ZHANG */public String getHaiwanVersion() {String channel = "";try {channel = this.getPackageManager().getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA).metaData.getString("HAIWAN_CHANNEL");} catch (NameNotFoundException e) {e.printStackTrace();}return channel;}
其他节点:
//在Activity应用元素。    ActivityInfo info = this.getPackageManager()            .getActivityInfo(getComponentName(),PackageManager.GET_META_DATA);    info.metaData.getString("meta_name");     //在application应用元素。    ApplicationInfo appInfo = this.getPackageManager()            .getApplicationInfo(getPackageName(),PackageManager.GET_META_DATA);    appInfo.metaData.getString("meta_name");     //在service应用元素。    ComponentName cn = new ComponentName(this, MetaDataService.class);    ServiceInfo info = this.getPackageManager().getServiceInfo(cn, PackageManager.GET_META_DATA);    info.metaData.getString("meta_name");     //在receiver应用元素。    ComponentName cn = new ComponentName(context, MetaDataReceiver.class);    ActivityInfo info = context.getPackageManager().getReceiverInfo(cn, PackageManager.GET_META_DATA);    info.metaData.getString("meta_name");

更多相关文章

  1. 手把手带你搭建 Elasticsearch 集群
  2. 利用Hierarchy Viewer优化布局 ---》android布局文件优化
  3. Android(安卓)Pull方式解析XML
  4. Android(安卓)UI布局优化之ViewStub
  5. android多渠道打包方案总结及APK signature scheme v2兼容
  6. Android常用布局范例
  7. Android显示概述
  8. Android(安卓)Studio - 第四十五期 Gradle manifestPlaceholders
  9. Android内存优化(使用SparseArray和ArrayMap代替HashMap)

随机推荐

  1. Android(安卓)网络框架初探
  2. Android(安卓)OpenGLES绘制yuv420纹理
  3. Android(安卓)HandlerThread源码解析
  4. android proguard混淆apk问题
  5. The import org.cocos2dx.lib cannot be
  6. PianoView-添加一行代码使用[最美应用]的
  7. 实战Linux Bluetooth编程(三) HCI层编程
  8. Android(安卓)调节屏幕亮度问题
  9. Android传感器各种解释
  10. Android(安卓)进程间通信-Intent、Messen