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

来源:互联网 发布:知鱼之乐的寓意 编辑:程序博客网 时间:2024/06/05 23:49

推送平台的选择

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

判断手机的代码

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的,可能没推送到,如果有使用到透传功能记得测试下这种情况
0 0
原创粉丝点击