1. 程式人生 > >Android獲取.Gradle檔案中的值和Manifests檔案中的值

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

程式碼中再根據返回的值進行判斷和控制即可。