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

推送平台的选择

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

判断手机的代码


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的,可能没推送到,如果有使用到透传功能记得测试下这种情况
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值