微信公衆號(高質量文章推送):陳博易前端
小米手機選擇小米推送的緣由:App進程被殺死的狀況下,小米手機上的小米推送服務並不會被殺死(除非用戶手動在設置中關閉了該推送的權限),因此我選擇給你們分享下小米推送。
這裏參考了一篇大佬的文章:www.jianshu.com/p/d77eaca4e…java
環境:Android AndroidStudio3.0 Java項目:IntelliJ IDEA 2017.2.3android
請參考小米官網
dev.mi.com/doc/?p=1621json
1.建立一個小米開發推送調式應用
後端
2.修改APP_ID、APP_KEY、包名(應用核心數據)
bash
參考小米官網文檔:
dev.mi.com/console/doc…服務器
3.小米官網推送微信
4.java後端核心步驟
參考文檔:
java後端環境集成 dev.mi.com/mipush/docs…
java後端開發文檔說明 dev.mi.com/console/doc…app
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();
}
}
}複製代碼
5.Android核心代碼介紹ide
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) {
}複製代碼
如何導入java項目(無腦next就好)
www.jianshu.com/writer#/not…
總算把android的環境和java後端環境都調試通了,若是你們還不懂的能夠私聊我哦。
源碼地址———關注微信公衆號,回覆:小米推送源碼