小米推送之服务端简单开发

1.获取SDK,并写入常量表

 

2.引入MiPush_SDK_Sever.jar文件和json-simple-1.1.1.jar

3.开发服务端代码(这里是用别名进行推送)

/*===================================小米推送=================================*/
/**
* 指定alias推送(单个或多个)
*
* @param messagePayload 消息
* @param title 消息标题
* @param description 消息描述
* @param adsType 消息类型
* @param adsLinks 消息链接
* @param aliasList 指定alias
*/
public static boolean xiaomiBatchPush(String messagePayload, String title, String description, String adsType,
String adsLinks, List<String> aliasList, Map<String,String> parm) {
log.info("小米设备:{}",aliasList);
try {
JSONObject result = builderMessageAndSender(messagePayload, title, description, adsType, adsLinks,parm);
Message message = (Message) result.get("message");
Sender sender = (Sender) result.get("sender");
Result pushResult = sender.sendToAlias(message, aliasList, 3);
log.debug("++++推送到小米结果为:{}",pushResult);
if (pushResult != null) {
return true;
}
} catch (Exception e) {
e.printStackTrace();
log.error("小米指定alias失败:", e);
}
return false;
}

public static JSONObject builderMessageAndSender(String messagePayload, String title, String description, String adsType, String adsLinks,Map<String,String> parm) {
//boolean isProd = myProperties.getPush().isProd();
boolean isProd = ConstantsUnit.xiaomiProd;
// 设置环境 正式环境下使用Push服务,启动时需要调用如下代码
Constants.useOfficial();
Map<String, String> map = new HashMap<>();
map.put("ads_type", adsType);
map.put("ads_links", adsLinks);
// 构建消息
Message message = new Message.Builder()
.title(title)
.description(description)
.payload(messagePayload)
.extra(Constants.EXTRA_PARAM_NOTIFY_FOREGROUND,Constants.NOTIFY_LAUNCHER_ACTIVITY)
//.extra(parm)
.restrictedPackageName(ConstantsUnit.xiaomiPackageName)
// 使用默认提示音提示
.notifyType(1)
.build();
// 构建发送
Sender sender = new Sender(ConstantsUnit.xiaomiAppSecretKey);
JSONObject result = new JSONObject();
result.put("message", message);
result.put("sender", sender);
return result;
}

 

转载于:https://www.cnblogs.com/xiaokangk/p/11101036.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/411009.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java源码导入eclipse_spring framework源码下载并导入eclipse

一. 准备工作1.下载安装sts(springsource推荐使用), 毕竟人家的框架用他自家的ide是最好的,当然sts也是基本eclipse的, 下载地址: http://www.springsource.org/downloads/sts-ggts2.下载安装gradle, spring 源码构建加入了gradle支持. gradle下载: http://www.gradle.org/down…

BI Publisher开发基本流程

1 配置文件位置 OracleBI/xmlp/XMLP/Admin/Configuration 2 登录到BI Publisher Enterprise (以下简称BIP) http://hostname:9704/xmlpserver/ 3 配置数据源 BIP支持四种类型的数据源连接 a) JDBC b) JNDI c) OLAP &#xff08;多维服务器&#xff0c;如Essbase Hyperion&#…

用户账号系统(python)

user_list[]#所有学生账号储存在该列表中 for i in range(1,201):temp{name:stustr(i),password:ppsucstr(i),email:stustr(i)gd.com}user_list.append(temp) #通过for循环创建200个现有学生账号 print("欢迎使用公大教务系统&#xff01;"…

查询优化(1)

--最近在看Inside Microsoft SQL Server 2005:Query Tuning and Optimization一书。其中有一段内容感觉归纳得不错&#xff0c;纠正了我以前的一些错误概念。 对查询我们可以从以下几个方面来考虑进行优化。 重写查询语句 除了尽量避免太复杂的谓词判断&#xff0c;我们还需要尽…

java二分法查找法算法_算法二:二分法查找(java语言)

说明&#xff1a;二分法查找* 解析&#xff1a;* 一维数组&#xff0c;二分法查找&#xff1a;假如有一组数为1,2,3,4,5,6,7,8,9,10要查给定的值7.* 可设三个变量low&#xff0c;mid&#xff0c;high分别指向数据的前&#xff0c;中间和后&#xff0c;mid(lowhigh)/2.* 注意&am…

四十大经(八正道)

中部117、四十大经 我听到这样&#xff1a; 有一次&#xff0c;世尊住在舍卫城祇树给孤独园。 在那里&#xff0c;世尊召唤比丘们&#xff1a;“比丘们&#xff01;” “尊师&#xff01;”那些比丘回答世尊。 世尊这么说&#xff1a; “我将教导你们圣正定的助伴、资粮&…

[原创]在windows下搭建基于apache的SVN环境

[原创]在windows下搭建基于apache的SVN环境 1 软件下载&#xff1a; 在http://httpd.apache.org/download.cgi&#xff0c;下载&#xff1a; apache_2.2.14-win32-x86-openssl-0.9.8k.msi 在 http://subversion.tigris.org/&#xff0c;下载&#xff1a; Setup-Subversion-1.6.…

java 线程不足_Java 线程基础知识

wait() 和notify()、notifyAll()这三个方法用于协调多个线程对共享数据的存取&#xff0c;所以必须在 Synchronized 语句块内使用这三个方法&#xff0c;否则会抛出错 IllegalMonitorStateException。前面说过 Synchronized 这个关键字用于保护共享数据&#xff0c;阻止其他线程…

16.Python略有小成(内置模块Ⅱ)

Python(内置模块Ⅱ) 一、规范化开发 一个py文件中 文件加载问题代码可读性,查询差要将一个py文件分开,合理的分成多个py文件 配置文件放在一起 : 一些轻易不改变的变量,一般命名 settings.py主逻辑函数放在一起 : 一般命名 src.py辅助功能函数放在一起 : 公共组件部分,装饰器,l…

java8 入门脚本之家_Java 8中的Lambda表达式

我想使用lambda表达式而不是for循环生成数字列表.所以让我们想要生成一个100以下的所有三角形数字的列表.三角数字是以下公式的数字&#xff1a;(n * n n)/ 2这样做最好的方法是什么&#xff1f;目前我有这个&#xff1a;Stream.iterate(1,n -> n 1).limit(100).map(n ->…

[原]nasm语法

工具:nasm 汇编gcc 编译cld 进行链接kscope 查看源代码make 工程管理khexedit 分析二进制文件一&#xff1a;nasm源文件布局&#xff1a;像其他汇编器一样&#xff0c; nasm源文件包含四个域的组合。&#xff08;除了宏&#xff0c; 或者预编译器指示&#xff0c; 或者汇编…

matlab的算法java_matlab环境下的回归算法分析

嗨&#xff0c;我想对回归技术进行全面分析&#xff0c;因此将继续编辑这个问题 . 我正在尝试使用Matlab中提供的技术来解决回归问题 . 理想情况下&#xff0c;我想看看诸如此类的技巧线性回归Logistic回归贝叶斯回归支持向量回归回归的高斯过程问题陈述给定数据 X 和 Y &#…

C#仿QQ皮肤-常用用户控件EnterFrom1和窗体EntryForm的实现

导读部分 ------------------------------------------------------------------------------------------------------------- C#仿QQ皮肤&#xff0d;实现原理系列文章导航 最新版源码下载 http://www.cckan.net/thread-2-1-1.html 本次是我们窗体实现的最后一节&#xff0c…

idea中删除java类并提交_IDEA 删除java类的3种提示

1. 点击 delete 删除文件时&#xff0c;会弹出如下选项&#xff1a;Safe delete (with usage search)Search in comments and strings“Safe delete ( with usage search)”, 字面意思是使用搜索安全删除. 是否选中结果分别为:没有选中状态,直接删除.选中状态,删除前IDEA会搜寻…