You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android设备重启后OneSignal推送通知无法接收的解决方案问询

解决方案

安卓端适配(问题大多出在安卓系统)

  • 首先升级OneSignal SDK到4.x及以上正式版本,新版SDK已经内置了开机广播监听逻辑,设备重启后会自动在后台重新完成推送注册,无需额外开发,也不会启动应用前台界面,用户完全无感知。
  • 如果因为项目原因无法升级SDK,需要手动添加权限和广播接收器:
    1. 在AndroidManifest.xml中添加开机接收权限:
      <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
      
    2. 注册开机广播接收器,收到广播后在后台直接初始化OneSignal,完成推送token的重新注册,全程不需要启动应用的Activity。
  • 国内定制ROM适配:小米、华为、vivo、OPPO等国内系统默认会禁用第三方应用的自启权限,即使注册了开机广播也无法被触发,需要在应用首次启动时弹窗引导用户手动开启「自启动权限」和「后台活动权限」,该限制为ROM层面的安全策略,无通用绕过方案。

iOS端适配

iOS系统本身不允许第三方应用监听开机事件,正常情况下系统级的APNs推送通道会独立维护路由,设备重启后不需要应用启动就能正常收到推送。如果出现重启后收不到的情况,按以下步骤排查:

  • 确认已经正确配置OneSignal的通知服务扩展,推送证书没有过期
  • 确认用户没有关闭应用的「允许通知」和「后台App刷新」权限
  • iOS设备重启后首次解锁前,系统会临时拦截所有第三方应用推送,属于系统安全机制,为正常情况

通用注意事项

  • 不需要采用开机自启应用再关闭的方案,该方案会被很多系统和应用商店判定为恶意行为,容易触发下架风险
  • 确认服务端推送配置的TTL(存活时间)合理,如果推送的时效性设置过短,设备开机时通知已经过期,自然无法收到,OneSignal后台可配置默认的通知存活时长,重要通知建议设置为至少24小时。

内容的提问来源于stack exchange,提问作者ElonMuskofBadIdeas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 17:15:03