获取友盟渠道号
2016-07-21 00:00
399 查看
摘要: 获取友盟渠道号
一、设置渠道号,例如:
<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> <meta-data android:name="UMENG_CHANNEL" android:value="baidusb"/> </application>
二、获取
/** * 获取友盟渠道名 * * @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) { //此处这样写的目的是为了在debug模式下也能获取到渠道号,如果用getString的话只能在Release下获取到。 channelName = applicationInfo.metaData.get("UMENG_CHANNEL") + ""; } } } } 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.get(key) + ""; } } } } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } return resultData; }
三、结果
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories