public class XiaomiPush {
// 1.小米推送(我只推送Android且只应用regId发起推送,所以下面只有推送Android的代码
private static final Log log = LogFactory.getLog(XiaomiPush.class);
private Message buildMessageForAndroid(String title, String description, String messagePayload,
Integer passThrough, Integer actionType, String actionUrl, Integer notifyType, String extendContent) {
Message message;
Message.Builder builder = new Message.Builder()
.title(title)//标题(注意16字真言限制长度,这段画上重点考)
.description(description)//描述(注意128限制长度,这段画上重点考,这个描述,我理解为副标题,而且在手机客户端呈现的也是标题+描述,内容不会自己显示出来,如果只是为了通知用户信息,我们可以将信息内容放在此处,显示效果比较明显。但是三个文字区域都不可空。需要补充文字方可使用)
.payload(messagePayload)//内容(这个长度够你用了)
.restrictedPackageName("com.handsight.fras.app")//APP包名
.passThrough(passThrough)//是否透传
.notifyType(notifyType)//设置震动,响铃等等
.extra("extend_content", extendContent);//这里要注意下,你可以通过自定义的key传给客户端一段透传参数
if (actionType == 1) {//动作跳转根据自己定义的方式去跳转url,if里的两组.extra是必须要放入的,这段画上重点
builder.extra(Constants.EXTRA_PARAM_NOTIFY_EFFECT, Constants.NOTIFY_ACTIVITY)
.extra(Constants.EXTRA_PARAM_INTENT_URI, actionUrl);
} else if (actionType == 2) {
builder.extra(Constants.EXTRA_PARAM_NOTIFY_EFFECT, Constants.NOTIFY_WEB)
.extra(Constants.EXTRA_PARAM_WEB_URI, actionUrl);
}
message = builder.build();
return message;
}
//1.2开始发送
public Result sendMessageToRegId(String messageId, String title, String description,
String messagePayload, Integer passThrough, Integer actionType, String actionUrl, Integer notifyType,
String extendContent, String regId) {
Constants.useOfficial();//这里要注意,这是正式-启动方式,支持IOS跟Android,Constants.useSandbox();这是测试-启动方式,不支持Android,尽量申请正式APP,利用正式环境测试
Sender sender = new Sender("jKAussDowdzuANrDvYm62A==");
Message message = buildMessageForAndroid(title, description, messagePayload, passThrough, actionType, actionUrl, notifyType, extendContent);
Result result = null;
try {
log.info("小米推送开始推送");
result = sender.send(message, "HL69kwZSUPet6hi05GSBA/XH3B17xwuVuCuM0vU3AajHItBjr7ivNM/l2n5mlLZQ", 1);
log.info("小米推送成功");
} catch (Exception e) {
log.info(e.getMessage());
}
return result;
}