小米推送Java代码

 更新时间:2019年01月28日 09:18:09   作者:富贵稳中求  
今天小编就为大家分享一篇关于小米推送Java代码,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

maven

 <dependency>
  <groupId>com.xiaomi</groupId>
  <artifactId>json-simple</artifactId>
  <version>1.1.1</version>
 </dependency>
 <dependency>
  <groupId>com.xiaomi</groupId>
  <artifactId>MiPush_SDK_Server</artifactId>
  <version>2.2.18</version>
 </dependency>

java util

package com.tjg99.commons.util;
import com.xiaomi.xmpush.server.Constants;
import com.xiaomi.xmpush.server.Message;
import com.xiaomi.xmpush.server.Sender;
import com.xiaomi.xmpush.server.Sender.BROADCAST_TOPIC_OP;
import net.sf.json.JSONObject;
import org.json.simple.parser.ParseException;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * 小米推送工具类
 **/
public class MiPushUtil {
  private static String APP_SECRET_KEY_ANDROID = "asdasdasdasdasdasd";
  private static String APP_SECRET_KEY_IOS = "asdasdasdasdasd==";
  private static String MY_PACKAGE_NAME = "com.tjg99";
  /**
   * 向所有设备发送推送
   * @param messagePayload 消息
   * @param title     消息标题
   * @param description  消息描述
   * @param ads_type    消息类型
   * @param ads_links   消息链接
   * @throws IOException
   * @throws ParseException
   **/
  public static void sendAllBroadcast(String messagePayload, String title, String description, String ads_type,
                    String ads_links) throws IOException, ParseException {
    Constants.useOfficial();
    Map map = new HashMap();
    map.put("ads_type", ads_type);
    map.put("ads_links", ads_links);
    Message message = new Message.Builder().title(title).description(description).payload(messagePayload)
        .extra("data", JSONObject.fromObject(map).toString()).restrictedPackageName(MY_PACKAGE_NAME)
        .notifyType(1).passThrough(0) // 使用默认提示音提示
        .build();
    //安卓推送
    Sender sender_android = new Sender(APP_SECRET_KEY_ANDROID);
    // 根据topicList做并集运算, 发送消息到指定一组设备上
    sender_android.broadcastAll(message, 3);
    //ios推送
    Sender sender_ios = new Sender(APP_SECRET_KEY_IOS);
    // 根据topicList做并集运算, 发送消息到指定一组设备上
    sender_ios.broadcastAll(message, 3);
  }
  /**
   * 指定标签推送(推送指定类型用户)
   * @param messagePayload 消息
   * @param title     消息标题
   * @param description  消息描述
   * @param ads_type    消息类型
   * @param ads_links   消息链接
   * @param topicList   指定推送类型
   * @throws IOException
   * @throws ParseException
   **/
  public static void sendBroadcast(String messagePayload, String title, String description, String ads_type,
                   String ads_links, List<String> topicList) throws IOException, ParseException {
    Constants.useOfficial();
    Map map = new HashMap();
    map.put("ads_type", ads_type);
    map.put("ads_links", ads_links);
    Message message = new Message.Builder().title(title).description(description).payload(messagePayload)
        .extra("data", JSONObject.fromObject(map).toString()).restrictedPackageName(MY_PACKAGE_NAME)
        .notifyType(1).passThrough(0) // 使用默认提示音提示
        .build();
    // 安卓推送
    Sender sender_android = new Sender(APP_SECRET_KEY_ANDROID);
    // 根据topicList做并集运算, 发送消息到指定一组设备上
    sender_android.multiTopicBroadcast(message, topicList, BROADCAST_TOPIC_OP.UNION, 3);
    // ios推送
 //Constants.useSandbox();
    Sender sender_ios = new Sender(APP_SECRET_KEY_IOS);
    // 根据topicList做并集运算, 发送消息到指定一组设备上
    sender_ios.multiTopicBroadcast(message, topicList, BROADCAST_TOPIC_OP.UNION, 3);
  }
  /**
   * 指定alias推送(单个或多个)
   * @param messagePayload 消息
   * @param title     消息标题
   * @param description  消息描述
   * @param ads_type    消息类型
   * @param ads_links   消息链接
   * @param aliasList   指定alias
   * @throws IOException
   * @throws ParseException
   **/
  public static void sendMessageToAliases(String messagePayload, String title, String description, String ads_type,
                      String ads_links, List<String> aliasList) throws IOException, ParseException {
    Constants.useOfficial();
    Map map = new HashMap();
    map.put("ads_type", ads_type);
    map.put("ads_links", ads_links);
    Message message = new Message.Builder().title(title).description(description).payload(messagePayload)
        .extra("data", JSONObject.fromObject(map).toString()).restrictedPackageName(MY_PACKAGE_NAME)
        .notifyType(1).passThrough(0) // 使用默认提示音提示
        .build();
    //安卓推送
    Sender sender_android = new Sender(APP_SECRET_KEY_ANDROID);
    sender_android.sendToAlias(message, aliasList, 3);
    //ios推送
 //Constants.useSandbox();
    Sender sender_ios = new Sender(APP_SECRET_KEY_IOS);
    sender_ios.sendToAlias(message, aliasList, 3);
  }
}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

  • 如何将java或javaweb项目打包为jar包或war包

    如何将java或javaweb项目打包为jar包或war包

    本文主要介绍了如何将java或javaweb项目打包为jar包或war包,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • Java实现数据库连接池的方法

    Java实现数据库连接池的方法

    这篇文章主要介绍了Java实现数据库连接池的方法,涉及java数据库连接池的创建、连接、刷新、关闭及状态获取的常用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • Java并发编程包中atomic的实现原理示例详解

    Java并发编程包中atomic的实现原理示例详解

    这篇文章主要给大家介绍了关于Java并发编程包中atomic的实现原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-09-09
  • 基于Spring Data的AuditorAware审计功能的示例代码

    基于Spring Data的AuditorAware审计功能的示例代码

    这篇文章主要介绍了基于Spring Data的AuditorAware审计功能的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • 实例详解Spring Boot实战之Redis缓存登录验证码

    实例详解Spring Boot实战之Redis缓存登录验证码

    本章简单介绍redis的配置及使用方法,本文示例代码在前面代码的基础上进行修改添加,实现了使用redis进行缓存验证码,以及校验验证码的过程。感兴趣的的朋友一起看看吧
    2017-08-08
  • idea Gradle 控制台中文乱码的解决

    idea Gradle 控制台中文乱码的解决

    通过IDEA执行gradle的任务时,在终端的输出出现中文乱码,本文主要介绍了idea Gradle 控制台中文乱码的解决,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • Springboot添加支付接口

    Springboot添加支付接口

    这篇文章主要介绍了springboot如何添加支付接口,帮助大家更好得理解和学习使用springboot框架,感兴趣的朋友可以了解下
    2021-04-04
  • Spring容器注入bean的五种方法逐个解析

    Spring容器注入bean的五种方法逐个解析

    依赖注入(Dependency Injection)和控制反转(Inversion of Control)是同一个概念。具体含义是:当某个角色(可能是一个Java实例,调用者)需要另一个角色(另一个Java实例,被调用者)的协助时,在传统的程序设计过程中,通常由调用者来创建被调用者的实例
    2023-02-02
  • Springboot整合GuavaCache缓存过程解析

    Springboot整合GuavaCache缓存过程解析

    这篇文章主要介绍了springboot整合GuavaCache缓存过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • 在Java中以及Spring环境下操作Redis的过程

    在Java中以及Spring环境下操作Redis的过程

    文章介绍了在Java和Spring环境下操作Redis的基本方法,在Java环境下,使用Maven创建项目并导入Jedis依赖,通过配置端口转发访问Redis,文章总结了Redis的基本命令和类别,如String、list、hash、set和zset,感兴趣的朋友跟随小编一起看看吧
    2025-03-03

最新评论