不要看!Android统计渠道包注册量

可以理解为另一个问题,如何知道apk的渠道来源呢?

通过这个方法:

/**
     * 获取渠道名
     * @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) {
                        //UMENG_CHANNEL要和清单文件的相对应
                        channelName = applicationInfo.metaData.getString("UMENG_CHANNEL");
                    }
                }

            }
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }
        return channelName;
    }

不过需要和umeng配合使用,注意”UMENG_CHANNEL”这个词的对应:

<meta-data
            android:name="UMENG_CHANNEL"
            android:value="${UMENG_CHANNEL_VALUE}" />

在打包的地方(build.gradle)也需要植入这个”UMENG_CHANNEL”,这样才能在打包后修改清单文件的meta-data,注意UMENG_CHANNEL_VALUE要和meta-data里的value值的对应:

android {

    productFlavors {

        baidu {}//百度
        anzhi {}//安智
        yingyongbao {}//腾讯应用宝
        qihu360 {}//360
        wandoujia {}//豌豆荚
        mumayi {}//木蚂蚁
        appchina {}//应用汇
        leshi {}//乐视
        huawei {}//华为
        xiaomi {}//小米
        meizu {}//魅族
        oppo {}//oppo
        vivo {}//vivo
        pp {}//pp助手
        gfan {}//机锋市场
        nduo {}//n多市场
        lenovo {}//乐商店
        eoe {}//优亿市场
        gionee {}//金立
        coolpad {}//酷派
        myzte {}//中兴

        productFlavors.all { flavor ->
            flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
        }

    }
}

这样在打包后就可以通过getChannelName方法获取到打包的渠道了。如果获取不到的话,返回null

解决完这个问题后,就简单多了。在登陆/注册的时候把渠道名称传给后台,这样就可以统计到不光是注册的数据了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值