转:http://www.cnblogs.com/zhaohongtian/p/6808962.html


1. 概括

下面介绍下manifestPlaceholders占位符的使用,其实很好理解,你可以认为它可以在 build.gradle文件中定义字符串并将值映射到 AndroidManifest清单文件的指定位置.

下面说下使用方法:

2. AndroidManifest 文件定义占位符

部分代码如下:

                                                                                            // 这是在Activity 标签下                                     // 这是在Activity 标签下            

总结如下:

${你定义名称}

当然${}的前后面直接添加字符串.

例如:

android:value="${test_value_activity}"android:value="headword${test_value}append_word"

3. build.gradle 给占位符赋值

部分代码如下:

defaultConfig {        applicationId "com.didikee.wififriend"        minSdkVersion 15        targetSdkVersion 24        versionCode 1        versionName "1.0"        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"        manifestPlaceholders = [test_value: "这是测试值",test_value_activity:"Activity 中的测试值"]    }

总结如下:

manifestPlaceholders = [symbol1: "value1", symbol2:"value2"]

多个值时用,分隔开.

4. 在Java代码获取占位符的值

在获取值的时候是区分占位符在 Activity标签,Application标签,service标签,receiver标签下,所以有两种获取方式:

Activity标签下:

                ActivityInfo activityInfo = null;                try {                    activityInfo = getPackageManager().getActivityInfo(getComponentName(), PackageManager.GET_META_DATA);                } catch (PackageManager.NameNotFoundException e) {                    e.printStackTrace();                }                if (activityInfo == null)return;                String value = activityInfo.metaData.getString("nameActivity");

在 Application标签下:

                ApplicationInfo applicationInfo = null;                try {                    applicationInfo = getPackageManager().getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA);                } catch (PackageManager.NameNotFoundException e) {                    e.printStackTrace();                }                if (applicationInfo == null)return;                String value = applicationInfo.metaData.getString("nameApplication");

同理,在service标签,receiver标签下分别为:

String value=  MainActivity.this.getPackageManager().getServiceInfo(ComponentName,PackageManager.GET_META_DATA).metaData.getString("symbol");               String value=  MainActivity.this.getPackageManager().getReceiverInfo(ComponentName,PackageManager.GET_META_DATA).metaData.getString("symbol");

更多相关文章

  1. mybatisplus的坑 insert标签insert into select无参数问题的解决
  2. Android(安卓)TextView 单行文本的坑
  3. Android占位符,Java占位符
  4. android 关于Dialog 圆角的问题
  5. Android中onInterceptTouchEvent与onTouchEvent(图文)! .
  6. Android(安卓)Studio开发JNI - 第一个JNI程序
  7. Google Android操作系统内核编译图文教程
  8. 【Android开发问题集】布局加载器异常的问题
  9. Android中圆角显示EditText,并且只能显示一行

随机推荐

  1. Android(安卓)Zxing 扫描条码实现竖屏模
  2. Android开发经验谈之应用间数据共享
  3. Android(安卓)Studio使用技巧系列教程(七)
  4. Android(安卓)去除“Viewing full screen
  5. 软键盘隐藏和显示问题.
  6. TypedArray和obtainStyledAttributes使用
  7. Android(安卓)7.0拍照后保存到手机的指定
  8. android之Can't create handler inside t
  9. android下的读写权限
  10. android studio之NDK配置