应用研发平台EMAS中【阿里云移动推送】荣耀厂商通道集成,注册失败:[MPS:HonorRegister] getToken failure, errorCode is: 8002008, errorMsg is: service missing. 这个是什么原因呢?怎么尝试都不对,vivo注册就没问题。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
根据您提供的错误信息 [MPS:HonorRegister] getToken failure, errorCode is: 8002008, errorMsg is: service missing
,结合知识库中的相关资料,以下是问题的可能原因及解决方法:
荣耀推送服务依赖于设备上的系统级推送服务(Honor Push Service)。如果设备上未安装或未启用荣耀推送服务,会导致注册失败并返回 service missing
错误。
在集成荣耀厂商通道时,需要在 AndroidManifest.xml
文件中正确配置荣耀的 AppID
。如果配置错误或缺失,荣耀推送服务无法识别应用身份,从而导致注册失败。
荣耀推送SDK的初始化必须在推送SDK初始化之后执行。如果初始化顺序错误,可能导致荣耀通道注册失败。
荣耀推送服务仅在部分荣耀设备的特定ROM版本中支持。如果设备的ROM版本过低或不支持荣耀推送服务,也会导致注册失败。
如果项目开启了代码混淆,但未正确添加荣耀推送SDK的ProGuard配置,可能会导致荣耀推送服务的相关类被混淆,进而引发注册失败。
根据上述可能原因,您可以按照以下步骤逐一排查和解决问题:
AndroidManifest.xml
文件,确保在 <application>
节点下正确配置了荣耀的 AppID
:
<meta-data
android:name="com.hihonor.push.app_id"
android:value="您的荣耀AppID" />
AppID
是否从荣耀开放平台正确获取,并且与应用包名一致。在 Application
类中,确保荣耀推送SDK的初始化代码位于推送SDK初始化代码之后。例如:
// 推送SDK初始化
PushServiceFactory.getCloudPushService().initialize(application);
// 荣耀推送SDK初始化
HonorRegister.register(application);
proguard-rules.pro
文件中添加以下荣耀推送SDK的ProGuard配置:
# 荣耀通道
-ignorewarnings
-keepattributes *Annotation*
-keepattributes Exceptions
-keepattributes InnerClasses
-keepattributes Signature
-keepattributes SourceFile,LineNumberTable
-keep class com.hihonor.push.**{*;}
CloudPushService pushService = PushServiceFactory.getCloudPushService();
pushService.setLogLevel(CloudPushService.LOG_DEBUG);
AppID
和 AppKey
是否正确。通过以上步骤,您可以逐步排查并解决荣耀厂商通道注册失败的问题。如果问题仍然存在,建议提供详细的日志信息(包括初始化日志和错误日志),以便进一步分析问题原因。
希望以上解答对您有所帮助!您可以复制页面截图提供更多信息,我可以进一步帮您分析问题原因。