java 集成oppo、vivo 、魅族、华为,小米推送

oppo官网参考文档:https://open.oppomobile.com/wiki/doc#id=10203
魅族广发参考文档:http://open-wiki.flyme.cn/doc-wiki/index#id?57
http://open.res.flyme.cn/fileserver/upload/file/201806/563e4cd554364bfb97056638b29b1021.pdf
vivo官网参考文档:https://dev.vivo.com.cn/documentCenter/doc/197
小米官方文档:https://dev.mi.com/console/doc/detail?pId=1278
华为githut地址:https://github.com/BigBroB/huawei-push
oppo、vivo、魅族的代码参考他的博客:https://blog.csdn.net/u013585096/article/details/89479669

**

1.集成小米推送

**

 /**
     * 单播
     * @param regId  是app在客户端向小米推送服务注册时,每台设备上app的唯一标识
     * @param title 推送内容的标题
     * @param content 推送内容
     */
    public static void unicastNotification(String regId,String title,String content)  {
        Constants.useOfficial();
        Sender sender = new Sender(APP_SECRET);//申请到的AppSecret
        //String messagePayload = "This is a message(一般这里都是json字符串)";
        Message message = new Message.Builder()
                .title(title)
                .description(content)
                //.payload(messagePayload)
                .restrictedPackageName("com.test.android.smart")//点击消息跳转到的包
                .passThrough(0)     // 设置消息是否通过透传的方式至App, 1表示透传消息, 0表示通知栏消息(默认是通知栏消息)
                .notifyType(-1)      // 设置通知类型, type类型(-1, 1-使用默认提示音提示, 2-使用默认震动提示, 3-使用默认led灯光提示)
                .extra(Constants.EXTRA_PARAM_NOTIFY_EFFECT, Constants.NOTIFY_LAUNCHER_ACTIVITY)//打开当前app对应的Launcher Activity:
                .build();
        try {
            //registrationId regId是app在客户端向小米推送服务注册时,
            // 小米推送服务端根据设备标识和appId以及当前时间戳生成,
            // 因此能够保证每个设备上每个app对应的regId都是不同的,
            // 可以作为每台设备上app的唯一标识
            // 注:需要开发者自己的服务器接收客户端返回的regid并存储在自身服务器
            // retries代表发送失败后重试的次数
            sender.send(message, regId, 3); //发送消息到一组设备上, regids个数不得超过1000个
            //发送给所有的注册成功的应用
            //sender.broadcastAll(message, 1); //
        } catch (Exception e) {
            e.printStackTrace();
        } 
    }

2.集成vivo推送

     /**
     * 单播
     * @param regId  是app在客户端向推送服务注册时,每台设备上app的唯一标识
     * @param title 推送内容的标题
     * @param content 推送内容
     */
    public static void singeSend(String regId,String title,String content) throws Exception {
    	//参考文章写的是两个参数 但是从官网下载的sdk 并不支持
    	//Sender sender = new Sender(APP_SECRET, AUTH_TOKEN);
        Sender sender = new Sender(APP_SECRET);
        sender.initPool(20, 10);// 设置连接池参数,可
        Result result = sender.getToken(APP_ID, APP_KEY);//注册登录开发平台网站获取到的appId和appKey
        sender.setAuthToken(result. getAuthToken());//如果不设置这个参数 第二次推送 会报错:没有该权限
        Message singleMessage = new Message.Builder().regId(regId)//该测试手机设备订阅推送后生成的regId
                .notifyType(4)//1:无 2:响铃 3:振动 4:响铃和振动
                .title(title)
                .content(content)
                .timeToLive(1000)
                .skipType(1)//1:打开APP首页 2:打开链接 3:自定义 4:打开app内指定页面
                .skipContent("com.test.android.smart")
                .networkType(-1)
                 .requestId(getUUID())
                .build();// 构建单推消息体
        Result resultMessage = sender.sendSingle(singleMessage);// 发送单推请求
        logger.info(result.getDesc()+":"+resultMessage.getTaskId());
    }

注:相关依赖https://blog.csdn.net/m0_37874954/article/details/102610512

你可能感兴趣的:(java)