(Android)关于提高推送到达率问题

    xiaoxiao2021-12-14  48

    推送平台的选择

    现在单个平台的推送的到达率已经很低了,建议采用 小米+华为+ 第三方推送来完成推送工作。即在小米手机上采用小米推送,在华为手机上采用华为推送,其他机型采用第三方推送

    判断手机的代码

    public class SystemUtil { private static final String KEY_MIUI_VERSION_CODE = "ro.miui.ui.version.code"; private static final String KEY_MIUI_VERSION_NAME = "ro.miui.ui.version.name"; private static final String KEY_MIUI_INTERNAL_STORAGE = "ro.miui.internal.storage"; private static final String KEY_EMUI_API_LEVEL = "ro.build.hw_emui_api_level"; private static final String KEY_EMUI_VERSION = "ro.build.version.emui"; private static final String KEY_EMUI_CONFIG_HW_SYS_VERSION = "ro.confg.hw_systemversion"; private static final String PRODUCT_MANUFACTURER = "ro.product.manufacturer"; //ro.product.manufacturer=Huawei 华为制造 public static SysType getSystem(){ String SYS = null; try { Properties prop = new Properties(); prop.load(new FileInputStream(new File(Environment.getRootDirectory(), "build.prop"))); if(prop.getProperty(KEY_MIUI_VERSION_CODE, null) != null || prop.getProperty(KEY_MIUI_VERSION_NAME, null) != null || prop.getProperty(KEY_MIUI_INTERNAL_STORAGE, null) != null){ //小米系统 return SysType.XiaoMi; }else if(prop.getProperty(KEY_EMUI_API_LEVEL, null) != null ||prop.getProperty(KEY_EMUI_VERSION, null) != null ||prop.getProperty(KEY_EMUI_CONFIG_HW_SYS_VERSION, null) != null ||prop.getProperty(PRODUCT_MANUFACTURER, " ").equalsIgnoreCase("Huawei") ){ //华为系统 或者华为制造 return SysType.HuaWei; } } catch (IOException e){ e.printStackTrace(); return SysType.Other; } return SysType.Other; } public enum SysType { XiaoMi,//小米 HuaWei,//华为 Other } }

    集成的方式

    小米手机使用小米推送 华为手机采用透传推送+第三方推送,华为的透传用于激活第三方推送服务其他手机采用第三方推送(如极光、友盟这些。。。)

    注:这是目前我使用的集成方式,大家可以按照自己的项目情况而定。

    说说遇到的坑吧

    写这个也是为了记录少找弯路

    华为推送有两个版本,新版本需要下载一个叫”华为移动平台”的app才能用,并且功能还在完善中,建议使用旧的 华为的推送给所有人是不能用的,可能以后会修复,目前我测试还是有这个问题小米手机:在app进程被杀掉后,小米的透传是不能唤醒server的,可能没推送到,如果有使用到透传功能记得测试下这种情况
    转载请注明原文地址: https://ju.6miu.com/read-969547.html

    最新回复(0)