开发者社区 问答 正文

推送从2.+版本升级到3.+版本后,收不到通知/消息是为什么?



1.问题


推送从2.+版本升级到3.+版本后,收不到通知/消息,但Log已经打印通知/消息,是什么原因?

2.解决方案


由于推送SDK版本版本升级,做了一些局部修改。如果你是从V2.3.7及以下版本升级到V3.0.0及以上版本的用户,需在Manifest文件中修改您的消息接收Receiver的intent-filter。将:

  1. [backcolor=transparent]<action[backcolor=transparent] [backcolor=transparent]android:name[backcolor=transparent]=[backcolor=transparent]"org.agoo.android.intent.action.RECEIVE"[backcolor=transparent] [backcolor=transparent]/>

改为
  1. [backcolor=transparent]<action[backcolor=transparent] [backcolor=transparent]android:name[backcolor=transparent]=[backcolor=transparent]"com.alibaba.sdk.android.push.RECEIVE"[backcolor=transparent] [backcolor=transparent]/>

,否则会接收不到推送。
具体参考 Android SDK 3.0配置 消息接收Receiver配置

展开
收起
猫饭先生 2017-10-24 09:35:22 1195 分享 版权
阿里云 AI 助理回答

您遇到的问题可能是由于在升级阿里云推送SDK版本后,没有正确地调整AndroidManifest.xml文件中的配置导致的。根据您的描述和提供的解决方案,问题在于消息接收Receiver的intent-filter部分需要更新。

在旧版本(V2.3.7及以下)中,接收推送通知的intent-filter可能使用的是:

<intent-filter>
    <action android:name="org.agoo.android.intent.action.RECEIVE" />
</intent-filter>

但在升级到V3.0.0及以上版本后,阿里云推送服务改变了这个action的名字,因此您需要将上述代码修改为:

<intent-filter>
    <action android:name="com.alibaba.sdk.android.push.RECEIVE" />
</intent-filter>

确保进行此更改后,您的应用能够正确识别并处理来自新版本推送SDK的通知。如果问题仍然存在,建议检查以下几点: 1. 权限配置:确认是否已添加所有必要的权限,如网络权限、读取外部存储等。 2. 服务与广播接收器注册:检查AndroidManifest.xml中是否正确注册了PushService和自定义的BroadcastReceiver。 3. 应用设置:用户设备上是否有禁止应用后台运行或接收通知的设置。 4. 日志分析:详细查看Logcat输出的日志,寻找可能的错误信息或异常提示,这有助于进一步定位问题所在。 5. 清理与重建项目:有时候,简单地清理项目并重新编译也能解决因缓存或旧文件残留引起的问题。

参考文档链接通常会提供更详细的步骤和示例,按照官方指南操作通常能有效解决问题。如果以上步骤都无法解决问题,建议直接查阅阿里云官方文档或联系阿里云技术支持获取帮助。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:
问答地址: