Android之meta-data使用

元数据meta-data应用在manifest.xml文件中,主要用以为父组件提供配置数据。一个组件中可以包含有多个meta-data;

其可被包含于<activity>、<activity-alias>、<service>、<receiver>中。

其基本使用语法为:

<meta-data
    android:name="data_name"
    android:value="@string/meta_data"
    android:resource="@string/meta_data"/>

类似于一个键值对的形式,使用value则保存的是对应的String等值,使用resource则保存的是对应的资源Id值。

在四个组件中的使用及获取方式如下:

一、activity/activity-alias

1、在manifest中使用:

<activity
     android:name=".MainActivity"
     android:label="@string/app_name">
     <intent-filter>
         <action android:name="android.intent.action.MAIN"/>
         <category android:name="android.intent.category.LAUNCHER"/>
     </intent-filter>

    <meta-data
        android:name="data_name"
        android:value="@string/meta_data"
        />
</activity>

2、在代码中获取数据:

    // 使用时注意加上try_catch
    ActivityInfo actInfo = this.getPackageManager().getActivityInfo(
            getComponentName(), PackageManager.GET_META_DATA);
    String msg = actInfo.metaData.getString("data_name");
    // 如果meta-data类型是资源ID,使用getInt获取资源ID即可

二、service

1、使用:

<service android:name=".MyService">
    <meta-data
        android:name="data_name"
        android:value="@string/meta_data"/>
</service>

2、代码中获取数据:

    ComponentName cn = new ComponentName(this, MyService.class);
    ServiceInfo serInfo = this.getPackageManager().getServiceInfo(cn,
            PackageManager.GET_META_DATA);
    String msg = serInfo.metaData.getString("data_name");

三、receiver

1、使用

<receiver android:name=".MyReceiver">
    <meta-data
        android:name="data_name"
        android:value="@string/meta_data"/>

    <intent-filter>
        <action android:name="android.intent.action.PHONE_STATE"/>
    </intent-filter>
</receiver>

2、代码中获取数据

    ComponentName cn = new ComponentName(this, MyReceiver.class);
    ActivityInfo info = this.getPackageManager().getReceiverInfo(cn,
                PackageManager.GET_META_DATA);
    String msg = info.metaData.getString("data_name"); 

四、application

1、使用

<application>
    <meta-data
        android:name="data_name"
        android:value="@string/meta_data"/>
</application>

2、代码中获取数据

   ApplicationInfo appInfo = this.getPackageManager().getApplicationInfo(
            getPackageName(), PackageManager.GET_META_DATA);
    String msg = appInfo.metaData.getString("application_name");

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-01 12:38:40

Android之meta-data使用的相关文章

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

在app开发过程中,经常需要显示media文件的meta data信息,我们如何获取这些信息呢? MediaStore 首先想到的就是MediaStore类了,它为我们提供的丰富的属性,我们只要通过sqlite操作,就能获取这些属性提供的值啦. public static final String[] ItemImageProjection = new String[] { MediaStore.Images.ImageColumns.DISPLAY_NAME, MediaStore.Image

《BI那点儿事》META DATA(元数据)

原文:<BI那点儿事>META DATA(元数据) 关于数据仓库的数据,指在数据仓库建设过程中所产生的有关数据源定义,目标定义,转换规则等相关的关键数据.同时元数据还包含关于数据含义的商业信息,所有这些信息都应当妥善保存,并很好地管理.为数据仓库的发展和使用提供方便.关于数据的数据,用于构造.维持.管理.和使用数据仓库,在数据仓库中尤为重要.不同 OLAP 组件中的数据和应用程序的结构模型.元数据描述 OLTP 数据库中的表.数据仓库和数据集市中的多维数据集这类对象,还记录哪些应用程序引用不同

CMD 使用emulator.exe启动Android模拟器——emulator -data 镜像文件名称

在命令行[CMD]使用emulator.exe启动Android模拟器两种方式: - emulator -avd (AVD名称) - emulator -data (镜像文件名称) avd目录中的镜像文件 image 有: 文件 文件类型 cache.img: VMS Alpha executable userdata.img: VMS Alpha executable userdata-qemu.img: data 到底哪个镜像文件是呢? 显然cache.img不是,userdata-qemu

[Android P][Network data][Notes1]DcTracker setDataProfile 判断APN modemCognitive and requestNetwork set mApnSetting

一.setDataProfile(apn.modemCognitive->??aosp apn not invoke setDataProfilesAsNeeded??):DcTracker.setDataProfilesAsNeeded    ->for (ApnSetting apn : mAllApnSettings) {    ->if (apn.modemCognitive) {    ->...->RIL.setDataProfile->RIL_REQUES

Android vector Path Data画图详解

SVG是一种矢量图格式,是Scalable Vector Graphics三个单词的首字母缩写.在xml文件中的标签是<vector>,画出的图形可以像一般的图片资源使用,例子如下: <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" android:viewpo

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对

Facebook图片存储系统Haystack——存小文件,本质上是将多个小文件合并为一个大文件来降低io次数,meta data里存偏移量

转自:http://yanyiwu.com/work/2015/01/04/Haystack.html 一篇14页的论文Facebook-Haystack, 看完之后我的印象里就四句话: 因为[传统文件系统的弊端] 因为[缓存无法解决长尾问题] 所以[多个图片信息(Needle)存在同一个文件(SuperBlock)中] 所以[显著提高性能] 传统文件系统的弊端 传统的 POSIX 文件系统不适合高性能的图片存储, 主要原因是基于该文件系统来存储的话,是讲每个图片存储成某目录下的一个文件, 每次

让您的应用兼容 Android Oreo

不知不觉Android Oreo已经发布几个月时间了,你的应用开始使用最新平台了吗?在应用迁移过程中是否遇到了一些棘手问题?你的Android应用兼容Oreo如何呢? 我们应该都知道,每一次重大升级,在兼容性这一块总会出现或多或少的问题,今天就来一起探讨应用的兼容性. 不知道大家是否还记得,从Andriod 7.0更新后兼容性测试数据结果得知,Top1000主流应用中不兼容应用数量达到166个,导致总体兼容率仅为83%,相比之前Andriod 6.0 的更新所导致的应用不兼容问题更加突出. 对于

Android Data Binding Library 官方文档(译)

地址:https://developer.android.google.cn/topic/libraries/data-binding/index.html 本文地址:http://blog.csdn.net/jjwwmlp456/article/details/54915981 Data Binding Library (数据绑定库),旨在减少绑定应用程序逻辑和布局所需的一些耦合性代码 最低支持Android 2.1 (API Level 7) 构建环境 使用gradle插件1.5-alpha

Android隐式启动Activity匹配详解:Action,category,data

更多例子请参考:http://hi.baidu.com/wishwingliao/blog/item/0a38ccfce06f39e8fc037f85.html 隐式启动Activity的intent到底发给哪个activity,需要进行三个匹配,一个是action,一个是category,一个是data,可以是全部或部分匹配 同样适用于Service和BroadcastReceiver,下面是以Activity为例 MainActivity.java --主Activity TestActiv