Android <meta-data>

转载 2013年12月02日 10:28:01

在AndroidManifest.xml中,<meta-data>元素可以作为子元素,被包含在<activity>、<application>、<service>和<receiver>元素中,但
不同的父元素,在应用时读取的方法也不同。

1 :在Activity的应用。
   xml代码段:
   <activity...>
      <meta-data android:name="myMsg" android:value="hellomyactivity"></meta-data>
   </activity>
   
   java代码段:
   ActivityInfoinfo=this.getPackageManager()
                         .getActivityInfo(getComponentName(),
                         PackageManager.GET_META_DATA);
    Stringmsg=info.metaData.getString("myMsg");
   System.out.println("myMsg:"+msg);

 

一个组件元素能够包含任意数量的meta-data子元素。它们所有的值都会被收集在Bundle对象中并且使其可以作为组件的PackageItemInfo.metaData字段。一般的值可以通过value属性来指定,但是如果要指定一个资源id作为一个值,那么就要用resource属性来代替。例如:下面的代码就是指定存储在@string/kangaroo资源中的zoo名字。<meta-data android:name="zoo"android:value="@string/kangaroo"/>另一方面,利用resource属性将指定zoo的资源id号,并不是存储在资源中的资源值。<meta-dataandroid:name="zoo" android:resource="@string/kangaroo"/>当要给组件提供多个复杂的数据时,在这里并不推荐使用多重meta-data元素,推荐你存储这些数据在一个资源文件中并且利用resource属性来通知它的id给组件。

2:在application的应用。
   xml代码段:
  <application...>
      <meta-data android:value="hello my application"android:name="myMsg"></meta-data>
  </application>
  
   java代码段:
   ApplicationInfo appInfo = this.getPackageManager()
                                 .getApplicationInfo(getPackageName(),
                         PackageManager.GET_META_DATA);
    Stringmsg=appInfo.metaData.getString("myMsg");
   System.out.println("myMsg:"+msg);

3:在service的应用。
   xml代码段:
  <serviceandroid:name="MetaDataService">
     <meta-data android:value="hello my service"android:name="myMsg"></meta-data>
  </service>

   java代码段:
  ComponentName cn=newComponentName(this, MetaDataService.class);
   ServiceInfoinfo=this.getPackageManager()
                       .getServiceInfo(cn, PackageManager.GET_META_DATA);
    Stringmsg=info.metaData.getString("myMsg");
   System.out.println("myMsg:"+msg);

4: 在receiver的应用。
 

  xml代码段:
   <receiverandroid:name="MetaDataReceiver">
           <meta-data android:value="hello my receiver"android:name="myMsg"></meta-data>
           <intent-filter>
               <actionandroid:name="android.intent.action.PHONE_STATE"></action>
           </intent-filter>
   </receiver>
  java代码段:
   ComponentName cn=new ComponentName(context,MetaDataReceiver.class);
    ActivityInfoinfo=context.getPackageManager()
                            .getReceiverInfo(cn, PackageManager.GET_META_DATA);
    Stringmsg=info.metaData.getString("myMsg");
   System.out.println("myMsg:"+msg);

[android] 如何获取media文件的meta data信息

在app开发过程中,经常需要显示media文件的meta data信息,我们如何获取这些信息呢? MediaStore 首先想到的就是MediaStore类了,它为我们提供的丰富的属性,我们只要通...

Android 读取Manifest文件下Application 等节点下的meta-data自定义数据

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

android meta-data的使用以及含义

android:resource="resource specification"   android:value="string" />        该元素的基本结构.可以包含在  ...

Android学习之 Manifest中meta-data扩展元素数据的配置与获取

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

Android之读取 AndroidManifest.xml 中的数据:版本号、应用名称、自定义K-V数据(meta-data)

转载地址Android开发中我们常常需要知道,当前应用的版本信息。可以进行自动升级判断。扩展自定义数据 meta-data, 这些数据都在AndroidManifest.xml .我们如何获取这些信息...

Android之meta-data

本文主要记录一些零碎的东西 使用过半收费的SDK的都会涉及到key,比如使用百度地图等,都会让你申请密钥,然后写在manifest文件里。一直没有思考,都是直接使用,今天看了一下meta-data,g...

Android meta-data

Android meta-data数据的读取meta-data元数据,当我们在集成第三方sdk时会经常遇到,比如百度地图sdk,talkingData统计等,所以做了一个小总结,以备使用。在清单文件中...

Android Manifest标签之manifest,meta-data,path-permission,permission

Android Manifest标签之manifest,meta-data,path-permission,permission

Android----<meta-data>简要学习使用

meta-data是什么?标签meta-data的官方介绍链接:查看Android官方解释meta-data是Android的Manifest文件内activity,activity-alias,ap...

Android 学习之获取application和activity下meta-data中的值

meta-data在AndroidManifest中是以键值对的形式存在的,可以将meta-data放在application根节点下,也可以放在某个activity节点下。因为存放的位置不同,因此获...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android <meta-data>
举报原因:
原因补充:

(最多只允许输入30个字)