android获取友盟渠道名以及获取application中的meta-data

本文介绍了一个用于获取Android应用中友盟渠道名的Java方法实现,包括使用Context和PackageManager等API来获取应用的元数据信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

获取友盟渠道名

[java]  view plain copy
  1. /** 
  2.      * 获取渠道名 
  3.      * @param ctx 此处习惯性的设置为activity,实际上context就可以 
  4.      * @return 如果没有获取成功,那么返回值为空 
  5.      */  
  6.     public static String getChannelName(Activity ctx) {  
  7.         if (ctx == null) {  
  8.             return null;  
  9.         }  
  10.         String channelName = null;  
  11.         try {  
  12.             PackageManager packageManager = ctx.getPackageManager();  
  13.             if (packageManager != null) {  
  14.                 //注意此处为ApplicationInfo 而不是 ActivityInfo,因为友盟设置的meta-data是在application标签中,而不是某activity标签中,所以用ApplicationInfo  
  15.                 ApplicationInfo applicationInfo = packageManager.getApplicationInfo(ctx.getPackageName(), PackageManager.GET_META_DATA);  
  16.                 if (applicationInfo != null) {  
  17.                     if (applicationInfo.metaData != null) {  
[java]  view plain copy
  1. <span style="white-space:pre">            </span>//key换成说需要的key  
  2.                         channelName = applicationInfo.metaData.getString(key);  
  3.                     }  
  4.                 }  
  5.   
  6.             }  
  7.         } catch (PackageManager.NameNotFoundException e) {  
  8.             e.printStackTrace();  
  9.         }  
  10.         return channelName;  
  11.     }  

提取为通用方法:

[java]  view plain copy
  1. /** 
  2.    * 获取application中指定的meta-data 
  3.    * @return 如果没有获取成功(没有对应值,或者异常),则返回值为空 
  4.    */  
  5.   public static String getAppMetaData(Context ctx, String key) {  
  6.       if (ctx == null || TextUtils.isEmpty(key)) {  
  7.           return null;  
  8.       }  
  9.       String resultData = null;  
  10.       try {  
  11.           PackageManager packageManager = ctx.getPackageManager();  
  12.           if (packageManager != null) {  
  13.               ApplicationInfo applicationInfo = packageManager.getApplicationInfo(ctx.getPackageName(), PackageManager.GET_META_DATA);  
  14.               if (applicationInfo != null) {  
  15.                   if (applicationInfo.metaData != null) {  
  16.                       resultData = applicationInfo.metaData.getString(key);  
  17.                   }  
  18.               }  
  19.   
  20.           }  
  21.       } catch (PackageManager.NameNotFoundException e) {  
  22.           e.printStackTrace();  
  23.       }  
  24.   
  25.       return resultData;  
  26.   }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值