小米浏览器禁用java_小米殺不死的消息推送-- Android、java后端同時接入小米推送...

作者簡介

微信公眾號(高質量文章推送):陳博易

7e52f82d00ab0bc7c9bcd4f1c99c9fcb.gif

前言

小米手機選擇小米推送的原因:App進程被殺死的情況下,小米手機上的小米推送服務並不會被殺死(除非用戶手動在設置中關閉了該推送的權限),所以我選擇給大家分享下小米推送。

這里參考了一篇大佬的文章:http://www.jianshu.com/p/d77eaca4e52a

環境以及工具

環境:Android AndroidStudio3.0 Java項目:IntelliJ IDEA 2017.2.3

整體步驟

在小米開發者站開通小米開發者賬號

啟用推送服務

下載SDK、文檔和DEMO

SDK集成和調試

詳細步驟

核心步驟解讀

創建一個小米開發推送調式應用

46ca676894f312368d504ed10ae8d92d.png

82324ed5ae7d2498268252ce2f50f2c8.png

fba8b29a447341680ae05e50f02a19f6.png

2df6367c2bdf21de2284be36a02ce8c4.png

c0a4efd611814c141047dee61d8c2aea.png

修改APP_ID、APP_KEY、包名(應用核心數據)

4188ad336096e7eb9e8b1dd840c9a873.png

1506479bc0fe1218da55f02d4db2025b.png

d084d5ba15a63c4419540795a90b0e8c.png

cb43620ab221c9eb3df5f4c05ba72338.png

public class mipushtest {

public static void main(String[] args) {

Constants.useOfficial();

Sender sender = new Sender("hYsI0lYsM+9lpgjyBV1gig==");//申請到的AppSecret

String messagePayload = "This is a message(一般這里都是json字符串)";

String title = "notification title(通知標題)";

String description = "notification description(通知簡介)";

Message message = new Message.Builder()

.title(title)

.description(description).payload(messagePayload)

.restrictedPackageName("com.xiaomi.mipushdemoboy")

.passThrough(0) // 設置消息是否通過透傳的方式至App, 1表示透傳消息, 0表示通知欄消息(默認是通知欄消息)

.notifyType(-1) // 設置通知類型, type類型(-1, 1-使用默認提示音提示, 2-使用默認震動提示, 3-使用默認led燈光提示)

.build();

try {

//registrationId regId是app在客戶端向小米推送服務注冊時,

// 小米推送服務端根據設備標識和appId以及當前時間戳生成,

// 因此能夠保證每個設備上每個app對應的regId都是不同的,

// 可以作為每台設備上app的唯一標識

// 注:需要開發者自己的服務器接收客戶端返回的regid並存儲在自身服務器

// retries代表發送失敗后重試的次數

sender.send(message, "7iuW9yVMV+s61aG1AVD7rXC+LHNs561t/rcAL1a3v84=", 1); //發送消息到一組設備上, regids個數不得超過1000個

//發送給所有的注冊成功的應用

//sender.broadcastAll(message, 1); //

} catch (IOException e) {

e.printStackTrace();

} catch (ParseException e) {

e.printStackTrace();

}

}

}

Android核心代碼介紹

public class DemoMessageReceiver extends PushMessageReceiver {

private String mRegId;//每台設備上app的唯一標識,為了方便測試將返回的regid記錄下來,方便在后端的推送

//方法用來接收服務器向客戶端發送的透傳消息。

@Override

public void onReceivePassThroughMessage(Context context, MiPushMessage message) {

}

//用來接收服務器向客戶端發送的通知消息,這個回調方法是在通知消息到達客戶端時觸發。

// 另外應用在前台時不彈出通知的通知消息到達客戶端也會觸發這個回調函數。

@Override

public void onNotificationMessageArrived(Context context, MiPushMessage message) {

}

//方法用來接收服務器向客戶端發送的通知消息,這個回調方法會在用戶手動點擊通知后觸發

@Override

public void onNotificationMessageClicked(Context context, MiPushMessage message) {

}

//方法用來接收客戶端向服務器發送命令后的響應結果。

@Override

public void onCommandResult(Context context, MiPushCommandMessage message) {

}

//方法用來接收客戶端向服務器發送注冊命令后的響應結果。

@Override

public void onReceiveRegisterResult(Context context, MiPushCommandMessage message) {

}

總結

總算把android的環境和java后端環境都調試通了,如果大家還不懂的可以私聊我哦。

請關注我(高質量文章推送)

源碼地址———關注微信公眾號,回復:小米推送源碼

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值