当前位置: 首页 > 知识库问答 >
问题:

从最近得刷卡时未获得推送通知

陈泰宁
2023-03-14

我没有收到通知,当用户刷从最近的应用程序。我注意到这种行为发生在某些特定的设备上,例如,我在nexus设备和HTC设备上测试过它,它运行良好,但当用户从华为和一些三星设备上滑动应用程序时,它不会显示通知。我的意思是我没有得到OnMessageReceived()回调

经过一些研究,我发现,在这些设备中,当用户从最近的it刷卡时,强制停止应用程序(进程完全被杀死),我没有得到任何通知。在华为,他们有受保护和不受保护的应用程序,如果我把应用程序从设置中添加到受保护列表中,我就会开始收到通知,因为在这种情况下,它不会强制停止应用程序。我相信三星在黑名单和白名单应用上也有同样的做法。

我也尝试过一些解决方案,比如重新启动服务oNTaskRemoved()回调,或者让应用程序start_sticky。我也尝试过wakefulbroadcastreceiver,但对我没有任何作用。

所以我的问题是,我如何才能得到通知,即使它被强迫停止,就像它发生的时候,从最近的应用。

共有1个答案

巫马淳
2023-03-14

一个老问题,但我想重要的是要知道华为有一个功能叫“功率密集型app监控器”。它会杀死每一个在后台运行很长时间的应用程序,除非用户给予它特殊的权限。执行此操作的路径:设置->安全与隐私->位置服务->最近的位置请求:您的应用程序名称->电池->取消选中电源密集型提示,应用程序启动:手动管理:选中所有三个位置:自动启动,二次启动,后台运行。

我不知道是否有一种编程方式来实现这一点。我认为最好的方法是创建一种帮助活动,并向用户解释如果应用程序不能工作该怎么做。

 类似资料:
  • 我通过FCM实现了推送通知。当应用程序从我的服务器获得一个新的通知时,通知面板会被我在notificationcompat.builder中设置的图标所注意,但消息不会作为弹出预览。我尝试设置优先级,样式,类别,但通知仍然没有显示。当我滚动时,我可以看到通知。 我在两种不同的设备操作系统(6.0.1和5.0.1)上尝试了这个应用程序,也是我的后端C#解决方案--两种方法都不弹出通知消息和通知 Fi

  • 我试图得到纬度和经度坐标的时区,但有一些问题,错误可能是非常基本的 我在数据库中有一个大约600行的表。每一行都包含一个世界上某个地方的较长的坐标,我想把这些坐标输入到一个函数中,然后检索时区。其目的是将在这600个地方中的每个地方都有本地时间戳的事件转换为UTC时间

  • 我有一个应用程序有推送通知功能。我注意到有些设备,特别是中国手机,像夏摩、oppo、一加等都有自动启动的选项,这就控制了推送通知。当应用程序不在后台或最近列表中时,我不会收到推送通知。默认情况下,我的应用程序自动启动是关闭的 是否有任何选项可以将“自动启动”设置为默认为“开启”

  • 根据《本地和远程通知编程指南》,当发送远程通知并点击SpringBoard中的应用程序图标时: 用户点击警报中的默认按钮或点击(或单击)应用程序图标。如果点击默认操作按钮(在运行iOS的设备上),系统将启动应用程序,应用程序将调用其代理的应用程序:didFinishLaunchingWithOptions:method,传入通知负载(用于远程通知)或本地通知对象(用于本地通知)。 如果通知是远程的

  • 我们正在开发一款android应用程序,以接收fcm的推送通知。我们在不同的手机上对该应用程序进行了全面测试,除oneplus 3t手机外,其他所有手机都运行良好。当应用程序被终止或从最近的应用程序中刷出时,它不会收到通知。当应用程序位于前台或打开时,它会收到通知。 我们从互联网上搜索了很多东西,很多网站说,将通知有效负载更改为数据,我们也在更改,它在oneplus 3t mobile中不起作用。

  • 我正在将通知从GCM迁移到FCM。在GCM中,当应用程序处于前台、后台或被杀死时,我能够收到通知,但在FCM中,当应用程序未被打开或被刷出时,我无法收到通知。我错过什么了吗???? } json请求正文: