获取友盟渠道名
- /**
- * 获取渠道名
- * @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) {
- <span style="white-space:pre"> </span>//key换成说需要的key
- channelName = applicationInfo.metaData.getString(key);
- }
- }
- }
- } 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;
- }