小米殺不死的推送Android、java後端同時接入小米推送

NO IMAGE

作者簡介

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

小米殺不死的推送Android、java後端同時接入小米推送
案例演示

前言


小米手機選擇小米推送的原因:App進程被殺死的情況下,小米手機上的小米推送服務並不會被殺死(除非用戶手動在設置中關閉了該推送的權限),所以我選擇給大家分享下小米推送。
這裡參考了一篇大佬的文章:www.jianshu.com/p/d77eaca4e…

環境以及工具


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

整體步驟


  1. 在小米開發者站開通小米開發者賬號
  2. 啟用推送服務
  3. 下載SDK、文檔和DEMO
  4. SDK集成和調試

詳細步驟


請參考小米官網
dev.mi.com/doc/?p=1621

核心步驟解讀


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

小米殺不死的推送Android、java後端同時接入小米推送

小米殺不死的推送Android、java後端同時接入小米推送

小米殺不死的推送Android、java後端同時接入小米推送

小米殺不死的推送Android、java後端同時接入小米推送

小米殺不死的推送Android、java後端同時接入小米推送
獲取應用核心數據

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

小米殺不死的推送Android、java後端同時接入小米推送
修改APP_ID、APP_KEY

小米殺不死的推送Android、java後端同時接入小米推送
修改清單文件

小米殺不死的推送Android、java後端同時接入小米推送
修改包名

參考小米官網文檔:
dev.mi.com/console/doc…

3.小米官網推送

小米殺不死的推送Android、java後端同時接入小米推送
校驗前端的sdk環境是否正常

4.java後端核心步驟
參考文檔:
java後端環境集成 dev.mi.com/mipush/docs…
java後端開發文檔說明 dev.mi.com/console/doc…

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核心代碼介紹

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) {

}

總結


  1. 如何導入java項目(無腦next就好)
    www.jianshu.com/writer#/not…

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

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

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

小米殺不死的推送Android、java後端同時接入小米推送
長按二維碼“識別”關注或者掃一掃

相關文章

AndroidNDKJNI開發之旅03so類庫JAR包使用

Android前端Java後端集成支付寶支付

postman使用Androidjava後端接口調試工具

Android抓包Charleshttp接口調試