当前位置:   article > 正文

读取AndroidManifest.xml中的meta-data_androidmanifest meta-data

androidmanifest meta-data

AndroidManifest.xml中定义了meta-data,例如常见的渠道名:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3. package="zhangphil.book">
  4. <application
  5. android:allowBackup="true"
  6. android:icon="@mipmap/ic_launcher"
  7. android:label="@string/app_name"
  8. android:roundIcon="@mipmap/ic_launcher_round"
  9. android:supportsRtl="true"
  10. android:theme="@style/AppTheme">
  11. ......
  12. <meta-data
  13. android:name="APP_CHANNEL"
  14. android:value="zhangphil" />
  15. </application>
  16. </manifest>

上层Java代码读取:

  1. ApplicationInfo appInfo;
  2. try {
  3. appInfo = this.getPackageManager().getApplicationInfo(this.getPackageName(), PackageManager.GET_META_DATA);
  4. Bundle bundle = appInfo.metaData;
  5. String app_channel = bundle.getString("APP_CHANNEL", null);
  6. Toast.makeText(getApplicationContext(), app_channel, Toast.LENGTH_SHORT).show();
  7. } catch (Exception e) {
  8. e.printStackTrace();
  9. }

 

需要注意的是,如果meta-data不是定义在application里面,而是在activity或者service等Android组件里面,代码实现会有不同。如果meta-data定义在service里面,那么上层Java代码读取的方式为:

  1. ComponentName cn = new ComponentName(this, XXXService.class);
  2. ServiceInfo info = this.getPackageManager().getServiceInfo(cn, PackageManager.GET_META_DATA);
  3. String xxx_value = info.metaData.getString("xxx_key");

 

若是activity,则形式类似,用到的关键组件是activity的。如果是广播broadcast,则是广播的。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/652625
推荐阅读
相关标签
  

闽ICP备14008679号