今天想获取清单文件的中UMENG_CHANNAL 的值但是 Debug 的时候,老是报 null.

一般的方法:

/**

* 获取渠道名

* @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;

}

抽取之后:

/**

* 获取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;

}

总结:

在 Debug模式下打印不出来渠道的信息! 但是在发布的版本就可以 打印出信息!

总结中的问题:  已经解决了?

思考: 之所以出现这种问题, 是因为  在 Debug  模式下, applicationInfo.metaData.getString()  当出现

android:name="UMENG_CHANNEL" android:value="360" />

的时候,  这样 系统就会 自动的 判断 360 是int型,这个时候只能使用 applicationInfo.metaData.getInt() 方法获取。

解决方案:

这两种方式可以解决, 但是 需要判断 感觉麻烦。

所以 最佳的解决方案:

MyAplication.umeng_channal = applicationInfo.metaData.get()+“”;

android 获取渠道信息,Android 如何获取 umeng 的 渠道信息相关推荐

  1. android 渠道方案,Android多渠道打包时获取当前渠道的方法

    作为Androidapp,发布多个分发平台是常规操作.然后,有时由于个渠道面对的用户不同,或平台审核标准不同,需要在各渠道使用不同的业务逻辑,这就需要根据渠道使用选择差异化代码. 这里把简单的代码记一 ...

  2. android 渠道索取,Android多渠道打包时获取当前渠道的方法

    作为android app,发布多个分发平台是常规操作.然后,有时由于个渠道面对的用户不同,或平台审核标准不同,需要在各渠道使用不同的业务逻辑,这就需要根据渠道使用选择差异化代码. 这里把简单的代码记 ...

  3. 【IOC 控制反转】Android 事件依赖注入 ( 事件依赖注入具体的操作细节 | 获取 Activity 中的所有方法 | 获取方法上的注解 | 获取注解上的注解 | 通过注解属性获取事件信息 )

    文章目录 前言 一.获取 Activity 中的所有方法 二.获取方法上的注解 三.获取注解上的注解 四.通过注解属性获取相关事件信息 前言 Android 依赖注入的核心就是通过反射获取 类 / 方 ...

  4. Android获取Linux图像信息,Android系统信息获取 之十三:Linux内核版本信息获取

    Android系统信息获取 之十三:Linux内核版本信息获取 Android系统是基于Linux的,各个Android版本对应的Linux版本不尽相同,我们这里不去追究各个Android对应的Lin ...

  5. android中获取应用程序(包)的信息,Android中获取应用程序(包)的信息PackageManager的使用(一).doc...

    Android中获取应用程序(包)的信息PackageManager的使用(一) 本节内容是如何获取Android系统中应用程序的信息,主要包括packagename.label.icon.占用大小等 ...

  6. android源码已关联设备,获取android设备已安装应用信息

    本文将介绍如何获取设备中已经安装的应用信息,包括:应用名称.包名.图标等. 获得信息列表后,选择某一项记录还可以启动对应的应用! 1.代码实现 package com.example.showappl ...

  7. android 多媒体文件信息,Android 获取多媒体信息

    在做多媒体应用开发时,往往需要获取到多媒体文件的相关信息. Android 提供了 MediaMetadataRetriever 类来获取输入媒体文件的帧(Frame)和元数据(Meta data). ...

  8. Android开发,GPS获取实时时间并转为北京时间,定位信息,海拔高度,并进行显示

    在转载的基础上增加一些内容,主要是时间的转换所以这里直接先把重点列出来: (GPS时间转为本地时间): @SuppressLint("SimpleDateFormat")priva ...

  9. Android基站定位——通过手机信号获取基站信息

    基站定位原理:通过手机信号获取基站信息,然后调用第三方公开的根据基站信息查找基站的经纬度值,想要具体地址信息的再根据经纬度值获取具体的地址信息. 一.通过手机信号获取基站信息 通过TelephonyM ...

  10. android 获取当前坐标,Android获取位置信息的方法

    本文实例为大家分享了Android获取位置信息的具体代码,供大家参考,具体内容如下 1.位置服务的简介:位置服务,英文翻译为Location-Based Services,缩写为LBS,又称为定位服务 ...

最新文章

  1. 用友 传入的 json 格式无效_用友网络股吧:被错杀的半导体材料龙头,全年或60%高增长,刚刚走出黄金坑...
  2. h5+ 获取当前位置 并获取当前天气
  3. MySQL 数据库中如何将表字段的空值全部替换成空字符串
  4. PyCharm2019.1.1安装(Ubuntu16.04)
  5. 荣耀 升级 鸿蒙,荣耀终于放出大招!4部荣耀旗舰可升级鸿蒙,网友:终于等到了...
  6. wireshark找不到接口_wireshark网络小故障分析定位
  7. 微信小程序使用webview打开pdf文档及显示网页内容
  8. 凯立德地图导航2022年懒人包 安卓版
  9. Android9设备打开WIFI热点,Android9.0Wifi热点开启流程梳理
  10. 重返月球,铺路火星:2024年首位女性登月,280亿美元开启太空探索新纪元-1
  11. HFSS(ANSYS Electronics)电路优化两种方法:参数扫描和目标优化
  12. 智能座舱的交互革命,高算力AI芯片赋能全时全域交互体验
  13. 2010年用最少的钱玩转张家界
  14. c216芯片服务器内存,TD-S316E-S
  15. 混频通信的matlab仿真,基于MATLAB的FHSS通信系统的设计与实现 PPT课件
  16. 【自然语言处理】主题建模:BERTopic(实战篇)
  17. 电商导购网站入口战争:存被封杀和边缘化风险
  18. RISC-V IDE MounRiver Studio V1.51更新点介绍
  19. 第五届数字中国建设峰会启幕,元境联合信通院举办数字互动分论坛
  20. 电脑重装的时候这样设置一下,可以解决99%遇到的各种问题

热门文章

  1. Java:Parents、Father和Mother类
  2. android 微博开发者平台,微博Android平台SDK文档V.pdf
  3. js获取明天的年月日和计时器
  4. t检验比较两种算法的性能
  5. 4412开发板项目实战-云服务器智能家居
  6. 基于单片机的学生视力保护仪
  7. 安全攻击溯源思路及案例
  8. 利用条形码生成器在Word 2013中轻松制作条形码的方法
  9. 字符串匹配算法之BF算法(即暴力算法)
  10. 小米台灯突然自己亮了_除了彩屏和小爱,还有哪些升级?——小米手环4 NFC版...