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

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

在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;
    }
}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值