1. 程式人生 > >Android雲巴整合第三方推送實現APP偽保活(小米篇)

Android雲巴整合第三方推送實現APP偽保活(小米篇)

此文只是講述如何使用雲巴自帶的包實現該功能,核心技術並不是博主寫的。此功能實現首先實現基礎的推送,沒有實現的請看SDK快速入門,實現了的可以直接去官方文件怎麼整合第三方,雲巴文件傳送門,那我為什麼要寫這篇博文,我是不會和你講的,進入正題:

1.新建專案

以雲巴SDK裡面自帶Demo為例,SDK下載

2.建立第三方應用

跟著圖片順序走啊

建立第三方應用1

建立第三方應用2

建立第三方應用3

//這步建立的時候可能會出現包名存在的問題,可是包名你又不能改變啊,不要問我怎麼解決,就一直點吧,直到建立成成功。(小米的就選小米,華為的選華為,兩個都選我也不能拿你怎麼樣)這裡的AppId,AppKey,AppSecret是要用到的,記住,不要問我為什麼要強調下,我是不會和你講的
建立第三方應用4

3.第三方推送開發設定

導包
小米,怎麼導包不用講了吧,開啟你的project資料夾,開啟app資料夾,開啟app資料夾,開啟libs資料夾,把前面的包複製進去,我說的不是這張圖片,是這張圖片代表的包,壓縮包。然後依賴會了吧!

設定 AndroidManifest.xml
(1) 在……中新增以下程式碼來新增 permission,注意app包名要替換成自己的包名:

<!--這裡com.xiaomi.mipushdemo改成app的包名-->
<permission android:name="com.xiaomi.mipushdemo.permission.MIPUSH_RECEIVE"
android:protectionLevel="signature" />
<!--這裡com.xiaomi.mipushdemo改成app的包名--> <uses-permission android:name="com.xiaomi.mipushdemo.permission.MIPUSH_RECEIVE" />

(2) 在……中新增以下程式碼來新增 service 和 receiver:

<service
    android:name="com.xiaomi.push.service.XMJobService"
    android:enabled
="true" android:exported="false" android:permission="android.permission.BIND_JOB_SERVICE" android:process=":pushservice" />
<service android:name="com.xiaomi.push.service.XMPushService" android:enabled="true" android:process=":pushservice" /> <service android:name="com.xiaomi.mipush.sdk.PushMessageHandler" android:enabled="true" android:exported="true" /> <service android:name="com.xiaomi.mipush.sdk.MessageHandleService" android:enabled="true" /> <receiver android:name="io.yunba.android.thirdparty.receiver.ThirdPartyXMReceiver" android:exported="true"> <intent-filter> <action android:name="com.xiaomi.mipush.RECEIVE_MESSAGE" /> </intent-filter> <intent-filter> <action android:name="com.xiaomi.mipush.MESSAGE_ARRIVED" /> </intent-filter> <intent-filter> <action android:name="com.xiaomi.mipush.ERROR" /> </intent-filter> </receiver> <receiver android:name="com.xiaomi.push.service.receivers.NetworkStatusReceiver" android:exported="true"> <intent-filter> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </receiver> <receiver android:name="com.xiaomi.push.service.receivers.PingReceiver" android:exported="false" android:process=":pushservice"> <intent-filter> <action android:name="com.xiaomi.push.PING_TIMER" /> </intent-filter> </receiver>

初始化設定
要啟用第三方推送,要在初始化雲巴服務之前呼叫這個 API:YunBaManager.setThirdPartyEnable(getApplicationContext(), true)。,初始化服務前是什麼時候呢,反正你加在MainActivity的onCreate()方法的setContentView(R.layout.activity_main)方法下就好了。一共要加三串程式碼哦

YunBaManager.setThirdPartyEnable(getApplicationContext(), true);
YunBaManager.setXMRegister(<your_xiaomi_appid>,<your_xiaomi_appkey>);
YunBaManager.start(getApplicationContext());

<your_xiaomi_appid><your_xiaomi_appkey>替換成前面我講的要用到的,id是19位,key是13位(注意這裡的id和key是小米推送裡面的,不要和應用的搞混了!搞混了報錯appid為空哦,不要問我怎麼知道的)

到這裡,使用者端的設定就好了,下面介紹如何推送。

4.傳送推送訊息

想傳送這麼高階的訊息當然不是官方文應用管理裡面pulish,pulish2那裡頻道填一下,訊息內容填一下,點個傳送那麼簡單,我用的post,json實現的,測試連線
post目標地址

http://rest.yunba.io:8080

json引數:

{"method":"publish", "appkey":"這裡的是你應用的appkey", "seckey":"讓你記住的第三個引數", "topic":"你的頻道名","opts":{"time_to_live":20000,"third_party_push": {"notification_title":"顯示的title", "notification_content":"顯示的內容"}}, "msg":"要用到的內容"}

OK,你實現了APP殺掉後仍能接受訊息的功能,別在保活了,讓android平臺健康快樂的生活 [笑哭]