Android获取.Gradle文件中的值和Manifests文件中的值

来源:互联网 发布:php自学好找工作嘛 编辑:程序博客网 时间:2024/04/29 18:23

项目中有登录页面,但平时调试的时候每次都输入用户名密码来登录太麻烦,写成固定值发布的时候又要重新替换和注释。所以就想从不同版本获得信息然后代码中控制。

在Android项目文件中的build.gradle中,在android标签下的defaultConfig标签下,可以添加manifestPlaceholders,里面可以存一些app的配置信息值,比如是否是发布版本。如下图:

这里写图片描述

这样平时编译调试的时候使用的是debug版本默认的false,发布的时候使用的是release版本为true,即只需要在代码中获取这个isRelease值就可控制登录时候是否填写用户名密码或者直接赋值固定值。

那怎么获取build.gradle文件中的值呢,整个app项目中有个配置文件AndroidManifest.xml,在application标签下,可新写meta-data标签,其中的value值用${value}来表示,花括号中的value为gradle文件中的变量名。如下图:

这里写图片描述

然后代码中就可以写个工具类来获取manifest文件的meta-data的值。

代码:

//不同的类型要区别获取,以下是布尔类型的public static boolean getAppMetaDataBoolean(Context context, String metaName, boolean defaultValue) {    try {        //application标签下用getApplicationinfo,如果是activity下的用getActivityInfo        boolean value = context.getPackageManager()                .getApplicationInfo(context.getPackageName(), PackageManager.GET_META_DATA)                .metaData.getBoolean(metaName, defaultValue);        L.d("meta-data", metaName + " = " + value);        return value;    } catch (PackageManager.NameNotFoundException e) {        e.printStackTrace();        return defaultValue;    }}

代码中再根据返回的值进行判断和控制即可。

原创粉丝点击