Android 如何获取 umeng 的 渠道信息
今天想获取清单文件的中UMENG_CHANNAL 的值但是 Debug 的时候,老是报 null.
<meta-data android:name="UMENG_CHANNEL" android:value="test" />
一般的方法:
<span style="font-size:18px;">/** * 获取渠道名 * @param ctx 此处习惯性的设置为activity,实际上context就可以 * @return 如果没有获取成功,那么返回值为空 */ public static String getChannelName(Activity ctx) { if (ctx == null) { return null; } String channelName = null; try { PackageManager packageManager = ctx.getPackageManager(); if (packageManager != null) { //注意此处为ApplicationInfo 而不是 ActivityInfo,因为友盟设置的meta-data是在application标签中,而不是某activity标签中,所以用ApplicationInfo ApplicationInfo applicationInfo = packageManager.getApplicationInfo(ctx.getPackageName(), PackageManager.GET_META_DATA); if (applicationInfo != null) { if (applicationInfo.metaData != null) { channelName = applicationInfo.metaData.getString(""); } } } } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } return channelName; }</span>
<span style="font-size:18px;"> /** * 获取application中指定的meta-data * @return 如果没有获取成功(没有对应值,或者异常),则返回值为空 */ public static String getAppMetaData(Context ctx, String key) { if (ctx == null || TextUtils.isEmpty(key)) { return null; } String resultData = null; 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) { resultData = applicationInfo.metaData.getString(key); } } } } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } return resultData; }</span>
总结:
在 Debug模式下打印不出来渠道的信息! 但是在发布的版本就可以 打印出信息!
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。