小米推送Java代碼
更新時間:2019年01月28日 09:18:09 作者:富貴穩(wěn)中求
今天小編就為大家分享一篇關于小米推送Java代碼,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
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";
/**
* 向所有設備發(fā)送推送
* @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);
// 根據(jù)topicList做并集運算, 發(fā)送消息到指定一組設備上
sender_android.broadcastAll(message, 3);
//ios推送
Sender sender_ios = new Sender(APP_SECRET_KEY_IOS);
// 根據(jù)topicList做并集運算, 發(fā)送消息到指定一組設備上
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);
// 根據(jù)topicList做并集運算, 發(fā)送消息到指定一組設備上
sender_android.multiTopicBroadcast(message, topicList, BROADCAST_TOPIC_OP.UNION, 3);
// ios推送
//Constants.useSandbox();
Sender sender_ios = new Sender(APP_SECRET_KEY_IOS);
// 根據(jù)topicList做并集運算, 發(fā)送消息到指定一組設備上
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實現(xiàn)數(shù)據(jù)庫連接池的方法
這篇文章主要介紹了Java實現(xiàn)數(shù)據(jù)庫連接池的方法,涉及java數(shù)據(jù)庫連接池的創(chuàng)建、連接、刷新、關閉及狀態(tài)獲取的常用技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-07-07
Java并發(fā)編程包中atomic的實現(xiàn)原理示例詳解
這篇文章主要給大家介紹了關于Java并發(fā)編程包中atomic的實現(xiàn)原理,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2018-09-09
基于Spring Data的AuditorAware審計功能的示例代碼
這篇文章主要介紹了基于Spring Data的AuditorAware審計功能的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03
實例詳解Spring Boot實戰(zhàn)之Redis緩存登錄驗證碼
本章簡單介紹redis的配置及使用方法,本文示例代碼在前面代碼的基礎上進行修改添加,實現(xiàn)了使用redis進行緩存驗證碼,以及校驗驗證碼的過程。感興趣的的朋友一起看看吧2017-08-08
在Java中以及Spring環(huán)境下操作Redis的過程
文章介紹了在Java和Spring環(huán)境下操作Redis的基本方法,在Java環(huán)境下,使用Maven創(chuàng)建項目并導入Jedis依賴,通過配置端口轉發(fā)訪問Redis,文章總結了Redis的基本命令和類別,如String、list、hash、set和zset,感興趣的朋友跟隨小編一起看看吧2025-03-03

