最近要將一個安卓項目拆出一個精簡版,并將推送替換為友盟。包名為原名加個后綴。
接入umeng的推送sdk費了一番折騰,同時在友盟后臺注冊一個應用,獲取app-key和Umeng Message Secret,并填上應用的ApplicationId。
啟動應用后,能夠獲取device token,后臺發消息,顯示已發出但是設備死活收不到~
回去看文檔,發現有這么一句:
請確保Application Module的build.gradle文件中的applicationId與應用包名package一致。
然而applicationId可能不能和packagename一致的,因為我們還要打多個渠道包,每個渠道包的applicationId都是不一樣的。
繼續看文檔,在高級設置中有一節:
自定義資源包名
Android Studio開發工具是基于gradle的配置方式,資源文件的包和應用程序的包是可以分開的,為了正確的找到資源包名,為開發者提供了自定義的設置資源包的接口。當資源包名和應用程序包名不一致時,調用設置資源包名的接口
mPushAgent.setResourcePackageName(String packageName);
加上這句后,設備能收到消息了。
注意,友盟后臺設置中配置包名的地方,填寫的應該是applicationid,而且可以配置多個,但是總的包名長度加起來不能超過4k,大概兩三百個這樣。
image.png