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

来源:互联网 发布:js农历转公历 编辑:程序博客网 时间:2024/06/05 21:02

可以理解为另一个问题,如何知道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 0
原创粉丝点击