she*_*lll 9 android android-notifications android-appstandby android-doze wear-os
我有一个应用程序,可以收听电话通知,并通过以下方式向Android Wear手表发送消息MessageApi.一些设备运行良好,除了Android 6的一些设备,特别是华为Mate 8(看起来像所有华为Android 6的这样做).
华为有自己的冻结应用程序后台处理(受保护的应用程序)的实现.从用户报告中我已经确认我的应用程序在华为的受保护应用程序和Android 6的打盹模式中都有例外.该应用程序工作正常,但在显示关闭15分钟后,我的应用程序停止向连接的Android Wear手表发送消息.我的应用程序还可以记录收到的通知历史记录,15分钟后没有任何内容...直到手机的显示屏打开并且我的应用程序打开.之后,在手机显示屏关闭时应该收到的所有通知都会进入我的NotificationListenerService实施并立即发送到手表.记录的历史也证实了这一点.
任何想法如何为这些手机解决这个问题,尤其是带有Doze模式的Android 6的华为Mate 8?
NotificationListenerService设备处于打盹模式和/或应用程序处于待机模式时的正确行为是什么?
编辑
用户还确认他们的手机未处于省电模式,这也会影响后台应用及其服务.这个bug看起来像华为独家,因为没有Nexus用户报告这个,我的OnePlus One和M也没有这样做.N预览也适用于Nexus设备.
编辑2
我添加了一个可选的前台服务(startForeground()),因此我的应用程序在通知中心有一个永久通知,因此我的应用程序应该从每个电池优化中排除.对于前台服务通知,我使用了优先级,NotificationCompat.PRIORITY_MIN并添加了Notification.FLAG_ONGOING_EVENT标志.这对华为手机有点帮助但不多,现在NotificationListenerService在打开我的应用程序后打开屏幕后,延迟通知就会到达我的右边.我不使用startForeground()in NotificationListenerService而是使用另一个Service因为我无法控制它的生命周期.
| 归档时间: |
|
| 查看次数: |
1346 次 |
| 最近记录: |