众所周知, 每个组件都有<meta-data>元素, 用于接收一些外部数据(eg: appKey), 那其中的值应该怎么读取呢.
引用 1> Application
<application        android:allowBackup="true"        android:icon="@drawable/ic_launcher"        android:label="@string/app_name"        android:theme="@style/AppTheme" >        <meta-data            android:name="application_meta_data"            android:value="application_meta_data_value" />  <!--可以关联资源ID, 支持多种数据类型 -->

ApplicationInfo info = null;         try {         info = getPackageManager()                   .getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA);     } catch (NameNotFoundException e) {         e.printStackTrace();     }Log.v(TAG, "application meta data value:" + info.metaData.getString("application_meta_data"));

引用 2> Activity
<activity        android:name="fyc.app.testandroid.MainActivity" >        <meta-data            android:name="activity_meta_data"            android:value="activity_meta_data_value" /></activity>

ActivityInfo info = null;            try {        info = getPackageManager()                 .getActivityInfo(getComponentName(), PackageManager.GET_META_DATA);    } catch (NameNotFoundException e) {        e.printStackTrace();    }Log.v(TAG, "activity meta data value:" + info.metaData.getString("activity_meta_data"));

引用 3> Service
<service android:name="fyc.app.testandroid.MyService" >            <meta-data                android:name="service_meta_data"                android:value="service_meta_data_value" /></service>

ServiceInfo info = null;            try {        info = getPackageManager()                .getServiceInfo(new ComponentName(this, MyService.class), PackageManager.GET_META_DATA);  //如果在当前组件获取直接使用getcomponentName()    } catch (NameNotFoundException e) {            e.printStackTrace();    }Log.v(TAG, "service meta data value:" + info.metaData.getString("service_meta_data"));


引用 4> BroadcastReceiver
<receiver android:name="fyc.app.testandroid.MyReceiver" >        <meta-data                android:name="receiver_meta_data"                android:value="receiver_meta_data_value" /></receiver>

ActivityInfo info = null;            try {        info = getPackageManager()                .getReceiverInfo(new ComponentName(this, MyReceiver.class), PackageManager.GET_META_DATA);    } catch (NameNotFoundException e) {        e.printStackTrace();    }Log.v(TAG, "receiver meta data value:" + info.metaData.getString("receiver_meta_data"));


Logcat输出信息

11:11:46.733: V/MainActivity(571): application meta data value:application_meta_data_value
11:11:46.733: V/MainActivity(571): activity meta data value:activity_meta_data_value
11:11:46.763: V/MainActivity(571): service meta data value:service_meta_data_value
11:11:46.783: V/MainActivity(571): receiver meta data value:receiver_meta_data_value
官方介绍

http://developer.android.com/guide/topics/manifest/meta-data-element.html


更多相关文章

  1. Android - 组件工具箱(widget tool box)
  2. android —— 自定义控件 竖向的ViewPager,上下滑动的组件,android
  3. Android官方架构组件:Lifecycle
  4. 【Android】图片切换组件ImageSwitcher的运用
  5. XamarinAndroid组件教程RecylerView动画组件使用动画(3)
  6. 关于Android ListView组件中android:drawSelectorOnTop含义
  7. Android 小发现:xml里定义的组件取出始终为null
  8. android中四大组件之间相互通信

随机推荐

  1. 判断Android系统时间是否是24小时制
  2. Android 个人记账程序源码
  3. Android给View画边框
  4. Android下获取手机屏幕大小
  5. Android获取本机Mac地址和IP地址
  6. Android之快捷方式一——通过应用程序创
  7. android 在线预览pdf文件(目前最全)
  8. 布局的学习
  9. Android CTS 4.03测试总结
  10. Android Studio里面Failed to resolve: