Android中<meta-data>的使用简单记录

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

第一:在application的使用情况:

xml样例:

<application>
           <meta-data android:value="test" android:name="meta_value"></meta-data>
         
</application>

java提取meta-data信息:

ApplicationInfo appInfo = this.getPackageManager().getApplicationInfo(getPackageName(),PackageManager.GET_META_DATA);
                String data = appInfo.metaData.getString("meta_value");
                System.out.println("meta_value:"+data);

应用场景:

一般设置地图秘钥、极光推送秘钥等信息

<meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="xxxxxx" />

               <meta-data android:name="JPUSH_APPKEY" android:value="xxxxx" />

        第二:在Activity的使用情况:

xml样例:

<activity>
             <meta-data android:value="test" android:name="meta_value"></meta-data>
           
</activity>

java提取meta-data信息:

ActivityInfo info = this.getPackageManager().getActivityInfo(getComponentName(),PackageManager.GET_META_DATA);
           String data = info.metaData.getString("meta_value");
                  System.out.println("meta_value:"+data);

应用场景:

需要在特定的activity中引用固定的值,可以在xml中配置。

第三:在receiver中的使用情况:

xml样例:

<receiver android:name="MetaDataReceiver">
                <meta-data android:value="test" android:name="meta_value"></meta-data>
                <intent-filter>
                    <action android:name="android.intent.action.PHONE_STATE"></action>
                </intent-filter>
          </receiver>

       java提取meta-data信息:

    ComponentName cn=new ComponentName(context, MetaDataReceiver.class);
          ActivityInfo info=context.getPackageManager().getReceiverInfo(cn, PackageManager.GET_META_DATA);
              String data=info.metaData.getString("meta_value");
              System.out.println("meta_value:"+data);

    第四:在service中的使用情况:

xml样例:

        <service android:name="MetaDataService">
              <meta-data android:value="hello my service" android:name="myMsg"></meta-data>
           
</service>

java提取meta-data信息:

  ComponentName cn=new ComponentName(this, MetaDataService.class);
           ServiceInfo info=this.getPackageManager().getServiceInfo(cn, PackageManager.GET_META_DATA);
             String msg=info.metaData.getString("myMsg");
             System.out.println("myMsg:"+msg);

时间: 2024-10-24 06:24:21

Android中<meta-data>的使用简单记录的相关文章

Android中的帧动画的简单使用

Android中动画主要有下面几种,帧动画(frame),补间动画(tween),属性动画(property) 我们平时项目中主要用的是帧动画和补间动画 帧动画需要我们准备一组静态图片,这些图片是通过分解动画得来的,静态图片连起来播放形成动画效果 我们在res目录下新建一个drawable目录,用来存放动画资源和xml文件 图片如下: girl.xml 注意android:oneshot="false|true" 该属性控制动画是否重复播放,false代表重复播放 <?xml v

在Android中使App快速、简单地支持新浪微博、微信、QQ、facebook等十几个主流社交平台的分享功能

前言 在现在的APP或者游戏中,分享功能几乎已经成为标配.分享功能不但能够满足用户的需求,也能够为产品带来更多的用户,甚至可以对用户的行为.活跃度.年龄段等情况进行数据统计,使得软件公司可以对产品进行更精准的定位.今天我们就来简单剖析市场上一款优秀的分享SDK以及其集成过程,这款分享SDK就是友盟的社会化分享组件. 友盟社会化分享,帮助移动应用快速具备分享.登录.评论.喜欢等社交功能,提升用户粘度.助力产品推广,并提供实时.全面的社会化数据统计分析服务. 基本概念 根据友盟的集成文档,我们对于友

Android中两个Activity之间简单通信

在Android中,一个界面被称为一个activity,在两个界面之间通信,采用的是使用一个中间传话者(即Intent类)的模式,而不是直接通信. 下面演示如何实现两个activity之间的通信. 信息的发起者为Test,接收者为Target,代码如下: Test类: 1 package com.example.testsend; 2 3 import android.content.Intent; 4 import android.support.v7.app.AppCompatActivit

在Android中使App高速、简单地支持新浪微博、微信、QQ、facebook等十几个主流社交平台的分享功能

前言 在如今的APP或者游戏中,分享功能差点儿已经成为标配.分享功能不但能够满足用户的需求.也能够为产品带来很多其它的用户,甚至能够对用户的行为.活跃度.年龄段等情况进行数据统计,使得软件公司能够对产品进行更精准的定位.今天我们就来简单剖析市场上一款优秀的分享SDK以及其集成过程.这款分享SDK就是友盟的社会化分享组件. 友盟社会化分享,帮助移动应用高速具备分享.登录.评论.喜欢等社交功能,提升用户粘度.助力产品推广,并提供实时.全面的社会化数据统计分析服务. 很多其它请訪问友盟社会化组件官网.

Android中对/data/data/&lt;package name&gt;/files下文件操作

/data/data/<package name>/files /data/data/ 该路径为系统内部存储文件路径,即:/data/data/<package name>/,各路径都是基于你自己的应用<package name>的内部存储路径下. 注:所有内部存储中保存的文件在用户卸载应用的时候会被删除. 一. files 1. Context.getFilesDir(),该方法返回/data/data/<package name>/files的File对

Android中XML格式数据的简单使用

源码: package com.wangzhu.demo; import java.io.IOException; import java.io.StringWriter; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.

Android 中的菜单 OptionsMenu的简单应用

OptionsMenu就是安卓手机中的菜单选项 首先 要实现对菜单的操作就要先重写OnCreateOptionsMenu(Menu menu)方法 通常有两种方法来实现对菜单中选项的添加 第一种是动态添加:直接在OnCreateOptionsMenu方法中调用add方法 public boolean onCreateOptionsMenu(Menu menu) { menu.add(1,100,1,"菜单1"); menu.add(1,101,1,"菜单2"); m

Android中Paint的一些使用心得记录

Paint是Android api中绘制文字,图形的重要类,位于android.graphics包下,这个类早早就出现了.类似于JavaScript中的Paint,Paint的使用也离不开Canvas. Paint实际不是真正的"画笔",实际作"画"的是底层,对graphics包下的这个Paint是不可见的,这个Paint封装了各种作画的参数. 初始化Paint,可以直接通过默认的构造器 Paint mPaint = new Paint(); setTextSize

Android中ListView嵌套GridView的简单消息流UI(解决宽高问题)

最近搞一个项目,需要用到类似于新浪微博的消息流,即每一项有文字.有九宫格图片,因此这就涉及到ListView或者ScrollView嵌套GridView的问题.其中GridView的高度问题在网上都很容易找到答案,即覆写onMeasure方法,然后设置高度的MeasureSpec.但是宽度问题确实没有什么资料,这里所说的宽度问题是比如GridView的列数为3,那么即使只有一张图片,gridview的宽度也是match_parent的,导致用户点击在图片范围外但是在gridview范围内时Lis

Android 中ScrollView嵌套ListView 最简单有效的处理方法

第一次写博客,有错的地方大家可以指出: 大家都知道在ScrollView嵌套ListView,ListView会显示不完全,无法计算ListView的高度,要解决在一个滑动界面中显示ListView和其他布局,有两种方法: 第一种:就是让listView的高度全部展示出来,那么这个就要对ListView进行封装,重新设置高度:代码如下: public class ListViewForScrollView extends ListView { public ListViewForScrollVi