Android雲巴整合第三方推送實現APP偽保活(小米篇)
此文只是講述如何使用雲巴自帶的包實現該功能,核心技術並不是博主寫的。此功能實現首先實現基礎的推送,沒有實現的請看SDK快速入門,實現了的可以直接去官方文件怎麼整合第三方,雲巴文件傳送門,那我為什麼要寫這篇博文,我是不會和你講的,進入正題:
1.新建專案
以雲巴SDK裡面自帶Demo為例,SDK下載。
2.建立第三方應用
跟著圖片順序走啊
//這步建立的時候可能會出現包名存在的問題,可是包名你又不能改變啊,不要問我怎麼解決,就一直點吧,直到建立成成功。(小米的就選小米,華為的選華為,兩個都選我也不能拿你怎麼樣)這裡的AppId,AppKey,AppSecret是要用到的,記住,不要問我為什麼要強調下,我是不會和你講的
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平臺健康快樂的生活 [笑哭]