今天,是实在不知道该写点什么,但是还是想保持写博客的习惯,所以在网上找了找资料,于是写了这篇博客。内容很简单,大家如果有兴趣,可以自己在网上搜索相关的资料。

在AndroidManifest.xml清单文件中 我们有时会看到如下类似的<meta-data ... >元素开始的配置内容:

<meta-dataandroid:name="com.google.android.maps.v2.API_KEY"android:value="AIzaSyBhBFOgVQclaa8p1JJeqaZHiCo2nfiyBBo" />
<meta-dataandroid:name="com.google.android.gms.version"android:value="@integer/google_play_services_version" />

标签<meta-data>是提供组件额外的数据用的,它本身就是一个键值对,可以自定义名称和值。它可以包含在以下组件当中:
<activity>、<application> 、<service> 和 <receiver>

一、如何配置<mate-data...>元素:

标签<meta-data>元素的配置语法如下:

<meta-data android:name="string"android:resource="resource specification"android:value="string" />

说明:一般的值可以通过value属性来指定,但是如果要指定一个资源的id,则需要使用resource属性来配置。

<meta-data android:name="api_key" android:value="@string/api_key" />

二、如何获取<mate-data...>元素配置的值

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.metadatatest"android:versionCode="1"android:versionName="1.0" ><uses-sdkandroid:minSdkVersion="8"android:targetSdkVersion="8" /><applicationandroid:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme" ><meta-data android:name="mTag" android:value="@string/meta_application"></meta-data><activityandroid:name="com.example.metadatatest.MainActivity"android:label="@string/app_name" ><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter><!-- 一般的值可以通过value属性来指定,但是如果要指定一个资源id作为一个值,那么就要用resource属性来代替。 --><meta-data android:name="mTag" android:value="@string/meta_activity"></meta-data><!--利用resource属性将指定 mResource 的资源id号--><meta-data android:name="mResource" android:resource="@drawable/ic_launcher"></meta-data></activity><service android:name="com.example.metadatatest.service.DemoService"><meta-data android:name="mTag" android:value="@string/meta_service"></meta-data></service><receiver android:name="com.example.metadatatest.receiver.DemoReceiver"><intent-filter android:priority="1000"><action android:name="android.intent.action.BOOT_COMPLETED"/></intent-filter><meta-data android:name="mTag" android:value="@string/meta_broadcast"></meta-data></receiver></application></manifest>

在activity里获取manifest的mata元素的值

package com.example.metadatatest;import com.example.metadatatest.receiver.DemoReceiver;
import com.example.metadatatest.service.DemoService;
import android.app.Activity;
import android.content.ComponentName;
import android.content.pm.ActivityInfo;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.ServiceInfo;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;public class MainActivity extends Activity implements OnClickListener {private static final String TAG = MainActivity.class.getSimpleName();private ImageView iv_pic;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);findView();}private void findView() {Button bt_read_activity = (Button) findViewById(R.id.bt_read_activity);Button bt_read_service = (Button) findViewById(R.id.bt_read_service);Button bt_read_broadcast = (Button) findViewById(R.id.bt_read_broadcast);Button bt_read_application = (Button) findViewById(R.id.bt_read_application);iv_pic = (ImageView) findViewById(R.id.iv_pic);bt_read_activity.setOnClickListener(this);bt_read_service.setOnClickListener(this);bt_read_broadcast.setOnClickListener(this);bt_read_application.setOnClickListener(this);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.bt_read_activity:readMetaDataFromActivity();break;case R.id.bt_read_service:readMetaDataFromService();break;case R.id.bt_read_broadcast:readMetaDataFromBroadCast();break;case R.id.bt_read_application:readMetaDataFromApplication();break;default:break;}}/*** 读取application 节点  meta-data 信息*/private void readMetaDataFromApplication() {try {ApplicationInfo appInfo = this.getPackageManager().getApplicationInfo(getPackageName(),PackageManager.GET_META_DATA);String mTag = appInfo.metaData.getString("mTag");Log.e(TAG, "mTag=" + mTag);} catch (NameNotFoundException e) {e.printStackTrace();}}/*** 读取BroadcastReceiver 节点  meta-data 信息*/private void readMetaDataFromBroadCast() {try {ComponentName cn = new ComponentName(this, DemoReceiver.class);ActivityInfo info = this.getPackageManager().getReceiverInfo(cn,PackageManager.GET_META_DATA);String mTag = info.metaData.getString("mTag");Log.e(TAG, "mTag=" + mTag);} catch (NameNotFoundException e) {e.printStackTrace();}}/*** 读取Service 节点  meta-data 信息*/private void readMetaDataFromService() {try {ComponentName cn = new ComponentName(this, DemoService.class);ServiceInfo info = this.getPackageManager().getServiceInfo(cn,PackageManager.GET_META_DATA);String mTag = info.metaData.getString("mTag");Log.e(TAG, "mTag=" + mTag);} catch (NameNotFoundException e) {e.printStackTrace();}}/*** 读取Activity 节点  meta-data 信息*/private void readMetaDataFromActivity() {ActivityInfo info;try {info = this.getPackageManager().getActivityInfo(getComponentName(),PackageManager.GET_META_DATA);String mTag = info.metaData.getString("mTag");Log.e(TAG, "mTag=" + mTag);//读取图片资源idint mResource = info.metaData.getInt("mResource");iv_pic.setImageResource(mResource);} catch (NameNotFoundException e) {e.printStackTrace();}}}

以上是我把搜集的资料整理出来的内容,写得比较杂乱,所以大家看不懂可以自己在网上搜索资料看一下。

android 读取manifest的数据就讲完了。

就这么简单。



android 读取manifest的数据相关推荐

  1. Android读取M1卡数据

    最近公司要我做一个通过NFC功能读取M1卡数据的简易APP,具体功能就是读卡扣钱,给下面某个部门应急下,有关M1卡的介绍,我这里就简单介绍下,不过大家最好还是去网上详细了解下再来看我的博文.我这边的M ...

  2. Android 读取csv格式数据文件

    前言 什么是csv文件呢?百度百科上说 CSV是逗号分隔值文件格式,也有说是电子表格的,既然是电子表格,那么就可以用Excel打开,那为什么要在Android中来读取这个.csv格式的文件呢?因为现在 ...

  3. android mtp 单反 api,android读取单反的数据

    上一节说过怎么去获取usb的数据,而项目中需要的逝去获取单反保存的照片,当然你可以用读卡器,用读卡器的话和usb的原理是一样的,也可以直接使用otg连接android手机 下面,来说下单反--> ...

  4. android 读取excel表格数据(暂时只支持xls格式)

    需要的jar包:jxl public class ExcelUtils {private static List list = new ArrayList();private static Movie ...

  5. android 读取json数据(遍历JSONObject和JSONArray)

    android 读取json数据(遍历JSONObject和JSONArray) public String getJson(){ String jsonString = "{\" ...

  6. android 读取excel数据并保存为xml文件

    今天,简单讲讲android如何  读取excel数据并保存为xml文件. 最近,我这边需要把客户翻译的Excel字符资源作为xml字符资源,当时自己是一个一个的复制,发现效率太低.后来,在网上搜 ...

  7. Android 读取外接储存设备的数据(如挂载的U盘,SD卡等)

    本篇文章,将围绕以下几点来讲解: 1:OTG是什么? 2:Android手机和一些Android系统的TV盒子对OTG的支持情况? 3:如何得知外接储存设备的插入和拔出的广播事件? 4:得到插入广播后 ...

  8. Android读取assets目录下文件数据内容

    Android读取assets目录下文件数据内容 Android的体系架构设计中,assets目录下的数据内容(图片.文件等等)将不会被Android系统压缩.二次处理等,assets目录下的文件 ...

  9. 【Android 逆向】代码调试器开发 ( ptrace 函数 | 读取进程内存数据 )

    文章目录 一.读取进程内存数据 二.读取流程 三.完整代码 一.读取进程内存数据 使用 ptrace 函数读取内存数据 : ptrace(PTRACE_PEEKTEXT, m_nPid, (void* ...

最新文章

  1. Nginx工作原理及优化参数配置
  2. golang 复制 文件 文件夹
  3. Promise详解(一) ----基础用法
  4. 医学影像中用 python 读取 nrrd 文件、nrrd转nii、nrrd转h5
  5. wxWidgets:wxCondition类用法
  6. Java虚拟机结构分析
  7. 解决 GraphQL 的限流难题
  8. json对象转换成string的方法
  9. 汇编语言(二十一)之数值交换与自增
  10. Python习题week2
  11. 算法题——投篮比赛获胜的概率
  12. fn:startsWith()函数
  13. python抓取天气预报_抓取天气预报的代码(Python)
  14. mysql怎么设主键和外键_MySQL基础之 主键外键设置
  15. 软件架构风格 - 虚拟机风格
  16. matlab系统稳态误差终值,Matlab求解给定系统稳态误差
  17. c语言字符数组的实际长度,C语言中,当计算字符数组长度时,用sizeof 和strlen 的原理及两者的区别...
  18. codeforces CF1736B Playing with GCD
  19. Python-随机生成20位数字
  20. 强化学习(Reinforcement Learning)

热门文章

  1. ACM题目————吝啬的国度
  2. 2015.05.15,外语,学习笔记-《Word Power Made Easy》 01 “如何讨论人格特点”
  3. Python for Data Analysis
  4. C#中使用JavaScriptSerializer类实现序列化与反序列化
  5. 转载:介绍AD另外一种奇葩的多通道复用的方法
  6. STL 二分查找 upper_bound和lower_bound用法
  7. HTML-通知公告Tips
  8. hibernate基础之无法自动创建表总结
  9. 在WPF的WebBrowser控件中抑制脚本错误
  10. strstr和memcmp函数的实现