androidはappの現在のチャネル番号または取得リストファイルアプリケーションの任意のmeta-dataを取得する(友盟のマルチチャネルパッケージを例に挙げる)


Androidはappの現在のチャネル番号を取得するか、アプリケーション内の任意のmeta-dataを取得する(友盟のマルチチャネルパッケージを例に挙げる)
/**
 *   app       application    meta-data
 *
 * @return         (     ,    ),      
 */
public static String getAppMetaData(Context context, String key) {
    if (context == null || TextUtils.isEmpty(key)) {
        return null;
    }
    String channelNumber = null;
    try {
        PackageManager packageManager = context.getPackageManager();
        if (packageManager != null) {
            ApplicationInfo applicationInfo = packageManager.getApplicationInfo(context.getPackageName(), PackageManager.GET_META_DATA);
            if (applicationInfo != null) {
                if (applicationInfo.metaData != null) {
                    channelNumber = applicationInfo.metaData.getString(key);
                }
            }
        }
    } catch (PackageManager.NameNotFoundException e) {
        e.printStackTrace();
    }
    return channelNumber;
}

 :     key                  "UMENG_CHANNEL"( getChannelNumber(Context context, String key)        key  "UMENG_CHANNEL"),   "UMENG_APPKEY",       value 

    
    
/**
 *             
 */
 String channelNumber = getAppMetaData(getBaseContext(), "UMENG_CHANNEL");//  app