众所周知, 每个组件都有<meta-data>元素, 用于接收一些外部数据(eg: appKey), 那其中的值应该怎么读取呢.

1> Application

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<meta-data
android:name="application_meta_data"
android:value="application_meta_data_value" /> <!--可以关联资源ID, 支持多种数据类型 -->
ApplicationInfo info = null;

     try {
info = getPackageManager()
.getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA);
} catch (NameNotFoundException e) {
e.printStackTrace();
}
Log.v(TAG, "application meta data value:" + info.metaData.getString("application_meta_data"));

2> Activity

<activity
android:name="fyc.app.testandroid.MainActivity" >
<meta-data
android:name="activity_meta_data"
android:value="activity_meta_data_value" />
</activity>
ActivityInfo info = null;

    try {
info = getPackageManager()
.getActivityInfo(getComponentName(), PackageManager.GET_META_DATA);
} catch (NameNotFoundException e) {
e.printStackTrace();
}
Log.v(TAG, "activity meta data value:" + info.metaData.getString("activity_meta_data"));

 3> Service

<service android:name="fyc.app.testandroid.MyService" >
<meta-data
android:name="service_meta_data"
android:value="service_meta_data_value" />
</service>
ServiceInfo info = null;

    try {
info = getPackageManager()
.getServiceInfo(new ComponentName(this, MyService.class), PackageManager.GET_META_DATA); //如果在当前组件获取直接使用getcomponentName()
} catch (NameNotFoundException e) {
e.printStackTrace();
}
Log.v(TAG, "service meta data value:" + info.metaData.getString("service_meta_data"));

4> BroadcastReceiver

<receiver android:name="fyc.app.testandroid.MyReceiver" >
<meta-data
android:name="receiver_meta_data"
android:value="receiver_meta_data_value" />
</receiver>
ActivityInfo info = null;

    try {
info = getPackageManager()
.getReceiverInfo(new ComponentName(this, MyReceiver.class), PackageManager.GET_META_DATA);
} catch (NameNotFoundException e) {
e.printStackTrace();
}
Log.v(TAG, "receiver meta data value:" + info.metaData.getString("receiver_meta_data"));

Logcat输出信息

::46.733: V/MainActivity(): application meta data value:application_meta_data_value
::46.733: V/MainActivity(): activity meta data value:activity_meta_data_value
::46.763: V/MainActivity(): service meta data value:service_meta_data_value
::46.783: V/MainActivity(): receiver meta data value:receiver_meta_data_value

官方介绍

http://developer.android.com/guide/topics/manifest/meta-data-element.html

Android 读取<meta-data>元素中的数据的更多相关文章

  1. jquery在元素中存储数据:data()

    转自:http://www.php.cn/js-tutorial-405445.html 在元素中存储数据:data() 1 2 3 4 5 6 7 8 9 10 <!DOCTYPE html& ...

  2. 聚集表(clustered table)data page中的数据行可以无序

    误区 一直以为只要一个表含有聚集索引,那么在data page中的数据行是排序的.比如原来data page中有1.2.4.5.6这样四条记录,那么我要插入3这条记录,应该是先将456三条记录往后移, ...

  3. POI 读取Excel文档中的数据——兼容Excel2003和Excel2007

    Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能. HSSF - 提供读写Microsoft Exce ...

  4. C#跨进程读取listview控件中的数据

    http://www.cnblogs.com/Charltsing/p/slv32.html 欢迎交流:QQ564955427 读取标准的32位listview控件中的数据,网上已经有很多代码了.今天 ...

  5. Android 用SQLite 使用 CursorLoader 中的数据填充列表视图

    我做了简单的测试应用程序基于此示例.有一个按钮,插入到数据库和列表视图的数据.都是在 MainActivity 中.在原来的代码是restartLoader() 仅从调用 onResume() ,但它 ...

  6. python 读取文本文档中的数据

    import os dir = input('Please input the file dir:')#提示输入文件路径 while not os.path.exists(dir):#判断文件是否存在 ...

  7. 在服务端中,读取properties资源文件中的数据

    1.获取到资源的路径 2.读取数据 //properties文件对象 Properties properties = new Properties(); //通过HttpServletRequest ...

  8. C++读取excel特定行列中的数据

    可以通过COM API调用才是正解,不过需要编写COM接口类,Excel对象库的接口太多了……不过可以用工具自动生成. 我最近也在用VC操作Excel,在VC中可以这样做,在任何一个cpp文件中加入下 ...

  9. matlab读取txt文档中的数据

    ps:文件中只有数字! format long fp=fopen('文件路径','打开方式(r)') [num,count]=fscnaf(fp,'%f')

随机推荐

  1. ReactNative-闪退日志集成

    根据现实情况,先虚拟个场景 客户:喂,小王,上周发布的新版本,用着用着闪退了呢,是不是有什么问题? 小王:奥?主任,能说一下进行了那些操作吗? 客户:具体的我也不是很清楚,下面具体使用的人反应上来的, ...

  2. POJ 1286 Necklace of Beads(Polya简单应用)

    Necklace of Beads 大意:3种颜色的珠子,n个串在一起,旋转变换跟反转变换假设同样就算是同一种,问会有多少种不同的组合. 思路:正规学Polya的第一道题,在楠神的带领下,理解的还算挺 ...

  3. 强悍的javascript手势库

    /** * Toucher * git:https://github.com/cometwo/Toucher-1 */ "use strict"; (function (root, ...

  4. mysql DATE_FORMAT(date, format) 函数

    DATE_FORMAT(date, format) 函数用法 DATE_FORMAT(date, format) 函数根据format字符串格式化date值. 1.把字符串转为日期格式 实例: SEL ...

  5. getmask

    #include "stdio.h" #include "stdlib.h" #include "string.h" #include &q ...

  6. 惠普HP compaq康柏系列 CQ40笔记本电脑拆机除尘

    工具:两用螺丝刀(一字口的拆CPU,十字口的拆其它所有螺丝)    散热硅胶和CPU上的散热贴 正面照(A面) 反面照(D面) 第一步:拆掉电池,不要忘记了红圈这里的两颗螺丝.共6颗小螺丝. 第二步: ...

  7. selinux改变状态不需要重启的方法

    1.selinux的配置路径/var/selinux/config,配置内容为 2.配置文件修改完,需要重启系统,才能生效 3.使用sestatus -v 查看当前selinux功能情况: 4.使用s ...

  8. ZZY的宠物(矩阵运算+快速幂)

    E :ZZY的宠物 描述 ZZY领养了一对刚刚出生的不知名小宠物..巨萌巨可爱!!...小宠物的生命为5个单位时间并且不会在中间出意外翘辫子(如: 从0出生能活到5但活不到6)..小宠物经过2个单位时 ...

  9. 使用OctreeQuantizer提高gdi+绘图质量

    .net中gdi+绘制的图形质量很少,原因是gdi+使用的是256色的. 为了提高绘制图片的质量,可以使用是“Octree“ 算法.“Octree“ 算法允许我们插入自己的算法来量子化我们的图像. 一 ...

  10. 小课堂week19 编程范式巡礼最终季 超级范式

    编程范式巡礼(最终季)--超级范式 本周是编程范式系列的最后一次分享,让我们拉长视角,看向远方,进入"元编程"的领域,在<冒号课堂>中起了个很酷的名字:"超级 ...