众所周知, 每个组件都有<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. Java class 中public、protected 、friendly、private的区别

    转载自:http://hi.baidu.com/ceoct/item/7e136a2417ba6f896f2cc33c Java class 中public.protected .friendly.p ...

  2. mysql表前缀

    之前一直没明白,mysql有些规范里面,建议建表的时候添加前缀,它的意义究竟是为何.直到最近,我想学习一下Swift的网络请求,于是打算在新浪云新建个项目却发现新浪云免费用户最多只能建立5个项目.于是 ...

  3. SpringMVC访问静态页面

    Spring MVC显示静态页面 在前面搭建spring MVC环境时,我们设置了spring-mvc配置,通过tomcat来访问了index.jsp 页面,但是当我将页面换成.thml的静态面之后就 ...

  4. Integrate SharePoint 2013 with Team Foundation Server 2012

    Now that SharePoint 2013 is out I want to make sure that I can integrate SharePoint 2013 with Team F ...

  5. LaTeX绘图宏包 Pgfplots package

    Pgfplots package The pgfplots package is a powerful tool, based on tikz, dedicated to create scienti ...

  6. 使用maven的profile切换项目各环境的参数

    Java后端开发经常需要面对管理多套环境,一般有三种环境:开发,测试,生产. 各个环境之间的参数各不相同,比如MySQL.Redis等不同环境的host不一样,若每个环境都手动替换环境很容易出错,Ma ...

  7. [置顶] JDK工具(零)--简要介绍JDK1.6自带的42个工具

    Java的开发人员肯定都知道JDK的bin目录中有“java.exe”和“javac.exe”这两个命令行工具, 但并非所有的Java程序员都了解过JDK的bin目录之中其它命令行程序的作用. JDK ...

  8. 折叠伸缩工具栏 CollapsingToolbarLayout

    PS:这是一个超级超级垃圾的控件,强烈建议放弃使用! demo地址:https://github.com/baiqiantao/CollapsingDemo.git  一个类似的效果的库,有800个星 ...

  9. JavaScript中的单引号和双引号解决

    在使用JavaScript显示消息或者传递字符数据的时候,经常会碰到数据中夹杂单引号(')或者双引号("),这种语句往往会造成JavaScript报错.对此一般采用/'或者/"的解 ...

  10. Web开发中的6个坏习惯

    在 Usersnap,我们在能很好的组织网站开发有超过20(总和)年的经验.我们认为这些过去的经验能让我们很好的分辨出什么是好.坏和丑陋的网站开发.如今我们不想把注意力放在消极的部分,但就这一次,我们 ...