Android 阅读Manifest在文件Application 在与其他节点meta-data定义自己的数据
介绍
Android提供meta-date使用键值在实现自己的自定义配置的形式。
通常用作信道标识。它可以用在<application>,<activity>,<activity-alias> ,<provider> ,<receiver>节点下。全部的值存储在同一个Bundle里面,能够使用 PackageItemInfo.metaData渠道这些数据。
使用形式:
<meta-data android:name="string"
android:resource="resource specification"
android:value="string" />
resource 和 value直接用一个就可以,可是注意假设使用
<meta-data android:name="zoo" android:value="@string/kangaroo" />
那么得到的是ID值,也就是在R文件中面的数字。不是实际资源值。而要使用resource来取资源值(使用getInt()获取)。
<meta-data 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。
实例:
<meta-data android:value="GOOGLEPLAY_V165" android:name="HAIWAN_CHANNEL"/>
在自己定义的Application里面一个方法:
/**
* 获取Manifest里面配置的渠道版本号
* <p>2014-11-14</p>
* @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应用<meta-data>元素。
ActivityInfo info = this.getPackageManager()
.getActivityInfo(getComponentName(),PackageManager.GET_META_DATA);
info.metaData.getString("meta_name"); //在application应用<meta-data>元素。
ApplicationInfo appInfo = this.getPackageManager()
.getApplicationInfo(getPackageName(),PackageManager.GET_META_DATA);
appInfo.metaData.getString("meta_name"); //在service应用<meta-data>元素。
ComponentName cn = new ComponentName(this, MetaDataService.class);
ServiceInfo info = this.getPackageManager().getServiceInfo(cn, PackageManager.GET_META_DATA);
info.metaData.getString("meta_name"); //在receiver应用<meta-data>元素。
ComponentName cn = new ComponentName(context, MetaDataReceiver.class);
ActivityInfo info = context.getPackageManager().getReceiverInfo(cn, PackageManager.GET_META_DATA);
info.metaData.getString("meta_name");
版权声明:本文博客原创文章。博客,未经同意,不得转载。
Android 阅读Manifest在文件Application 在与其他节点meta-data定义自己的数据的更多相关文章
- Facebook图片存储系统Haystack——存小文件,本质上是将多个小文件合并为一个大文件来降低io次数,meta data里存偏移量
转自:http://yanyiwu.com/work/2015/01/04/Haystack.html 一篇14页的论文Facebook-Haystack, 看完之后我的印象里就四句话: 因为[传统文 ...
- Android中的gen文件为空或者不存在的处理方法
Android中的gen文件时链接程序和XML中资源定义的桥梁,所以如果gen文件夹为空可能有以下的几个原因: 1.XML文件错误,这时可以检查res文件夹中的文件是否有错误 2.导入新的Androi ...
- 又议android中的manifest清单文件
写过java程序的人,都知道了配置文件时java实现各种各样的框架的一大利器,manifest清单文件对android的作用自然不言而喻,然而他里面究竟定义了些什么,并且他是如何加载到程序中的. 他里 ...
- 【Android Api 翻译3】android api 完整翻译之Application Fundamentals (学习android必须知道的)
Android应用程序是用Java编程语言编写的.Android SDK工具把应用程序的代码.数据和资源文件一起编译到一个Android程序包中(这个程序包是以.apk为后缀的归档文件),一个Andr ...
- Android利用Http下载文件
Android利用Http下载文件 一.场景 下载存文本文件和下载如mp3等大容量的文件 界面 二.代码编写 1.AndroidMainfest.xml中配置 主要是解决网络权限和写SDCard的权限 ...
- Android之AndroidManifest.xml文件解析
转自:Android学习笔记之AndroidManifest.xml文件解析 一.关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文 ...
- Android的Manifest配置文件介绍
一.关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文件.它位于整个项目的根目录,描述了package中暴露的组件(ac ...
- Android学习----AndroidManifest.xml文件解析
一个Android应用程序的结构: 一.关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文件.它位于整个项目的根目录,描述了pack ...
- Android 数据库读取数据显示优化 Application [6]
Application和Activity,Service一样是android框架的一个系统组件, 当android程序启动时系统会创建一个application对象,用来存储系统的一些信息. 通常我们 ...
随机推荐
- ECG信号读出,检测QRS,P,T 波(小波去噪,并根据检测),基于BP辨识的神经网络
这学期的课程选择神经网络.最后的作业处理ECG信号,并利用神经网络识别. 1 ECG引进和阅读ECG信号 1)ECG介绍 详细ECG背景应用就不介绍了,大家能够參考百度 谷歌.仅仅是简单说下ECG ...
- 直接选择排序----java实现
直接选择排序思路: 从待排序数据中选择第一个假定为最小的下标,然后他后面的与他循环比较,得到真的最小值下标,然后最小值前的那一区段依次后移,并把最小值赋值给第一个元素.第二次时,假定第二个为最小,然后 ...
- 注意事项: Solr设备 Hello World
试用 Solr-4.10.2 一 shards, 这两款机器 一是垃圾 rm -r example/solr/collection1/data/* 启动一个 node cd example java ...
- Python调用微博API
上头叫通过微博ID获取用户公布过的历史微博内容,于是研究了下新浪微博提供的API 1 首先在微博开放中心下"创建应用"创建一个应用,应用信息那些随便填,填写完成后,不须要提交审核, ...
- HDU 3831 DICS
意甲冠军: 按标题给4操作模式 用最少的次数 离a串行转换b弦 思路: 因为操作仅仅有这4种 所以我们能够确定从头到位去匹配a和b一定是正确的 那么状态数一共同拥有多少呢 一共同拥有lengt ...
- dba_dependencies查询结果视图
[oracle@rhel63single ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Fri Mar 13 0 ...
- OAuth打造webapi认证服务
使用OAuth打造webapi认证服务供自己的客户端使用 一.什么是OAuth OAuth是一个关于授权(Authorization)的开放网络标准,目前的版本是2.0版.注意是Authorizati ...
- 人迹罕至的android要完全退出程序的一种方法
最近的一个项目,无意中发现了一个方法,使android要完全退出程序的一种方法,遥想当年,以便找到让的有效途径android遇险完全退出程序,我不由得有些感慨. 在这里,不敢独享.和大家分享一下,还启 ...
- 左右 Java 于 finally 深度分析语句块
首先,让我们来问你一个问题:finally 声明块将运行? 很多人认为 finally 语句块是一定要运行.其中还包括了一些非常有经验的 Java 程序猿.不幸的是,没有像很多像人们想象,对于这个问题 ...
- SQL入门学习1-查询基础
2-1 SELECT语句基础 SELECT语句作用 SELECT 语句用于从表中选取数据. 结果被存储在一个结果表中(称为结果集). 重点 使用SELECT语句从表中选取数据. 为列设定显示用的别名 ...