最近要将一个安卓项目拆出一个精简版,并将推送替换为友盟。包名为原名加个后缀。
接入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
网友评论