Android 如何获取 umeng 的 渠道信息
2015-01-23 17:59
225 查看
今天想获取清单文件的中UMENG_CHANNAL 的值但是 Debug 的时候,老是报 null.
一般的方法:
抽取之后:
总结:
在 Debug模式下打印不出来渠道的信息! 但是在发布的版本就可以 打印出信息!
总结中的问题: 已经解决了?
思考: 之所以出现这种问题, 是因为 在 Debug 模式下, applicationInfo.metaData.getString() 当出现
的时候, 这样 系统就会 自动的 判断 360 是int型,这个时候只能使用 applicationInfo.metaData.getInt() 方法获取。
解决方案:
这两种方式可以解决, 但是 需要判断 感觉麻烦。
所以 最佳的解决方案:
MyAplication.umeng_channal = applicationInfo.metaData.get()+“”;
<meta-data android:name="UMENG_CHANNEL" android:value="test" />
一般的方法:
<span style="font-size:18px;"><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>
抽取之后:
<span style="font-size:18px;"><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></span>
总结:
在 Debug模式下打印不出来渠道的信息! 但是在发布的版本就可以 打印出信息!
总结中的问题: 已经解决了?
思考: 之所以出现这种问题, 是因为 在 Debug 模式下, applicationInfo.metaData.getString() 当出现
<meta-data android:name="UMENG_CHANNEL" android:value="360" />
的时候, 这样 系统就会 自动的 判断 360 是int型,这个时候只能使用 applicationInfo.metaData.getInt() 方法获取。
解决方案:
这两种方式可以解决, 但是 需要判断 感觉麻烦。
所以 最佳的解决方案:
MyAplication.umeng_channal = applicationInfo.metaData.get()+“”;
相关文章推荐
- Android平台中应该如何获取音乐文件的信息
- android开发_如何获取android应用程序的相关信息并显示
- Android如何判断当前手机是否正在播放音乐,并获取到正在播放的音乐的信息
- android如何简单便捷的获取图片类型信息
- Android如何判断当前手机是否正在播放音乐,并获取到正在播放的音乐的信息
- Android平台中应该如何获取音乐文件的信息
- Android如何判断当前手机是否正在播放音乐,并获取到正在播放的音乐的信息
- Android如何判断当前手机是否正在播放音乐,并获取到正在播放的音乐的信息
- 如何获取设备上运行的android版本信息
- 【Android开发经验】如何获取媒体库中所有音频文件信息,并在文件增删后及时更新媒体库
- Android 如何用HttpClient 以Get方式获取数据并添加http头信息
- 【Android开发技巧】 - 如何获取应用Shortcut在Launcher坐标信息
- 如何在android环境下进行ttf解析,通过获取文件头信息得到字体名称!
- Android平台中应该如何获取音乐文件的信息
- Android平台中应该如何获取音乐文件的信息
- Android平台中应该如何获取音乐文件的信息
- android播放器如何获取音乐文件信息
- android系统如何获取手机信息
- Android 如何获取手机经纬度和地理位置信息
- Android开发————如何在锁屏之后还能获取GPS信息