AndroidStudio 多渠道打包及獲取渠道值以及如何轉義純數字

Build配置

在android{}內加

productFlavors {
		sanxing {
            manifestPlaceholders = [CHANNEL_VALUE: "32d2sss"]
        }
        guanwang {
            manifestPlaceholders = [CHANNEL_VALUE: "\\00000000"]
        }
}

AS 3.0+需在 defaultConfig {}內配置

flavorDimensions "default"//寫其他的也行

manifest裏的配置

<meta-data
            android:name="DEMO_CHANNEL"
            android:value="${CHANNEL_VALUE}"
            ></meta-data>

代碼中獲取渠道號

try {
            PackageManager packageManager = ctx.getPackageManager();
            if (packageManager != null) {
                ApplicationInfo applicationInfo = packageManager.getApplicationInfo(ctx.getPackageName(), PackageManager.GET_META_DATA);
                if (applicationInfo != null) {
                    if (applicationInfo.metaData != null) {
                        String channel = applicationInfo.metaData.get("DEMO_CHANNEL")+"";
                        AppConfig.CHANNEL = channel;
                        LogService.i("Channel","當前的渠道爲:"+channel );
                    }
                }
            }
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
            LogService.e("Channel",e.getMessage()+"");
        }

轉義問題

如果你的渠道號是一堆0000001 那麼最後獲取出來就是1
如果想獲取到位000001 那麼就需要加轉義字符\0000001

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章