Android獲取.Gradle檔案中的值和Manifests檔案中的值
阿新 • • 發佈:2019-02-06
專案中有登入頁面,但平時除錯的時候每次都輸入使用者名稱密碼來登入太麻煩,寫成固定值釋出的時候又要重新替換和註釋。所以就想從不同版本獲得資訊然後程式碼中控制。
在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;
}
}
程式碼中再根據返回的值進行判斷和控制即可。