1. 程式人生 > >Android-淺談百度推送遇到的坑

Android-淺談百度推送遇到的坑

背景

說到推送幾乎99%的APP都會整合推送功能以此來及時告知客戶新資訊,如今推送平臺也是琳琅滿目,如現今比較火的幾個平臺極光、信鴿、個推、百度...

過程

用的比較多的也就是極光和百度了,但是在使用百度的過程中總能遇到了一些奇葩問題:

1.推送到達率不高,根據官方文件需要在Manifast檔案中加入


可以看出圈起來的四個action宣告(廣播監聽):

MEDIA_MOUNTED 擴充套件介質被插入而且被掛載

USER_PRESENT 能監聽使用者進入Home介面

ACTION_POWER_CONNECTED 和 ACTION_POWER_DISCONNECTED 監聽手機電量狀態(安卓手機電池策略)

做了這麼多的監聽無非就是想監聽使用者行為,儘可能讓PUSH程序不被後臺系統KIll掉,這樣的確提高了推送到達率

2.針對小米魅族等手機的特效配置


說真的,這玩意兒看著有模有樣的,但是在小米手機上還是有收不到的情況,問了官方客戶也是半天沒響應,只好硬著頭皮繼續探索,最後終於找了一個方法:

-小米手機開發者模式下預設開啟了一個MIUI優化,當把它關掉的時候推送率是100%可以,但是如果開啟的話就很難收到推送



-小米手機上面如果安裝了一些百度產品(百度網盤)後也很難接收到推送訊息,根據百度技術的解答是因為百度推送使用的是單策略單通道模式(也就是所有的百度推送共用一個PUSH程序),這樣一來也就知道推送率低的原因了,但是也不可能把手機上所有百度產品都解除安裝掉吧!(Ps:不現實,況且也不清楚到底哪些軟體集成了百度推送),這要怎麼玩呢?So easy!還記得priority(優先順序)這個屬性嗎?只需要在我們自己的APP內設定它的值最大(-1000~1000越大優先順序越高)就能完美解決問題啦~


這些也僅僅是開發中遇到的一些小插曲,不能保證其他的手機推送率能夠100%,但起碼在小米、華為、oppo、魅族手機上經測試是沒問題的!不管有沒有用,起碼記錄一下,曾經見到過、嘗試過也想學到了很多!!!

後記

在點選狀態列推送的訊息時,又發現了一個小問題。點選觸發呼叫Android本機預設瀏覽器,除了oppo手機無響應外其他手機均是正常,很是費解,但是的確觸發了點選事件,就是呼叫不起瀏覽器,程式碼如下:


懇請路過的大神指點一二!!!

新人一枚、初來乍到、不喜勿怪(*^▽^*)