小米推送 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;

/**
 * 小米推送工具类
 *
 * @date 2018年3月14日
 */
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);
    }
}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值