安卓友盟推送中的ApplicationId 与 PackageName

最近要将一个安卓项目拆出一个精简版,并将推送替换为友盟。包名为原名加个后缀。
接入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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容