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