小米推送Java代碼
更新時間:2019年01月28日 09:18:09 作者:富貴穩(wěn)中求
今天小編就為大家分享一篇關(guān)于小米推送Java代碼,小編覺得內(nèi)容挺不錯的,現(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";
/**
* 向所有設(shè)備發(fā)送推送
* @param messagePayload 消息
* @param title 消息標(biāo)題
* @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) // 使用默認(rèn)提示音提示
.build();
//安卓推送
Sender sender_android = new Sender(APP_SECRET_KEY_ANDROID);
// 根據(jù)topicList做并集運算, 發(fā)送消息到指定一組設(shè)備上
sender_android.broadcastAll(message, 3);
//ios推送
Sender sender_ios = new Sender(APP_SECRET_KEY_IOS);
// 根據(jù)topicList做并集運算, 發(fā)送消息到指定一組設(shè)備上
sender_ios.broadcastAll(message, 3);
}
/**
* 指定標(biāo)簽推送(推送指定類型用戶)
* @param messagePayload 消息
* @param title 消息標(biāo)題
* @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) // 使用默認(rèn)提示音提示
.build();
// 安卓推送
Sender sender_android = new Sender(APP_SECRET_KEY_ANDROID);
// 根據(jù)topicList做并集運算, 發(fā)送消息到指定一組設(shè)備上
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ā)送消息到指定一組設(shè)備上
sender_ios.multiTopicBroadcast(message, topicList, BROADCAST_TOPIC_OP.UNION, 3);
}
/**
* 指定alias推送(單個或多個)
* @param messagePayload 消息
* @param title 消息標(biāo)題
* @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) // 使用默認(rèn)提示音提示
.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);
}
}
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
您可能感興趣的文章:
- 詳解Java8新特性之interface中的static方法和default方法
- SpringBoot之Java配置的實現(xiàn)
- JavaScript之解構(gòu)賦值的理解
- Java變態(tài)跳臺階實現(xiàn)思路和代碼
- Java算法實現(xiàn)調(diào)整數(shù)組順序使奇數(shù)位于偶數(shù)之前的講解
- 基于Java語言實現(xiàn)Socket通信的實例
- Java并發(fā)的CAS原理與ABA問題的講解
- Java內(nèi)存區(qū)域和內(nèi)存模型講解
- JavaScript變量提升和嚴(yán)格模式實例分析
- Java8的default和static關(guān)鍵字的使用講解
相關(guān)文章
Jmeter連接Mysql數(shù)據(jù)庫實現(xiàn)過程詳解
這篇文章主要介紹了Jmeter連接Mysql數(shù)據(jù)庫實現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-08-08
spring-cloud-gateway動態(tài)路由的實現(xiàn)方法
這篇文章主要介紹了spring-cloud-gateway動態(tài)路由的實現(xiàn)方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01
java如何根據(jù)IP獲取當(dāng)前區(qū)域天氣信息詳解
根據(jù)IP自動獲取當(dāng)?shù)氐奶鞖忸A(yù)報信息這個功能大家應(yīng)該都遇到過,天氣預(yù)報信息用途非常廣泛,篇文章主要給大家介紹了關(guān)于java如何根據(jù)IP獲取當(dāng)前區(qū)域天氣信息的相關(guān)資料,需要的朋友可以參考下2021-08-08
springboot中項目啟動時實現(xiàn)初始化方法加載參數(shù)
這篇文章主要介紹了springboot中項目啟動時實現(xiàn)初始化方法加載參數(shù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12
shenyu怎么處理sign鑒權(quán)前置到網(wǎng)關(guān)
這篇文章主要為大家介紹了shenyu怎么處理sign鑒權(quán)前置到網(wǎng)關(guān)方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08

