问题标签 [android-doze]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4214 浏览

android - Nexus 5 不会使用 ADB 进入打盹模式

我有一个 Nexus 5,它不会使用 Windows 的 ADB 命令进入打盹/空闲模式。它是使用 USB 电缆连接的 adb,它适用于所有其他 ADB 命令。屏幕关闭。

0 投票
2 回答
1709 浏览

android - NotificationListenerService 和 Doze 模式和 App Standby

我有一个应用程序可以监听电话通知并通过MessageApi. 除了一些搭载 Android 6 的设备,尤其是华为 Mate 8(看起来所有的华为 Android 6 都这样做),一切都运行良好。

华为有自己的冻结应用程序后台处理(受保护的应用程序)的实现。从用户报告中,我确认我的应用在华为受保护的应用和 Android 6 的打瞌睡模式下都有异常。该应用程序运行正常,但在显示关闭 15 分钟后,我的应用程序停止向连接的 Android Wear 手表发送消息。我的应用程序还可以记录收到的通知历史记录,15 分钟后什么都没有收到……直到手机显示屏打开并打开我的应用程序。之后,在手机显示屏关闭时本应到达的所有通知都会立即到达我的NotificationListenerService实现并发送到手表。这也被记录的历史所证实。

任何想法如何为这些手机解决这个问题,尤其是带有打瞌睡模式的 Android 6 的华为 Mate 8?

NotificationListenerService设备处于打盹模式和/或应用程序处于待机模式时的正确行为是什么?

编辑

用户还确认他们的手机没有处于省电模式,这也会影响后台应用程序及其服务。这个错误看起来像是华为独有的,因为没有 Nexus 用户报告过这个问题,而我的 OnePlus One with M 也没有这样做。N 预览也适用于 Nexus 设备。

编辑 2

我添加了一个可选的前台服务startForeground()(对于前台服务通知,我使用了优先级NotificationCompat.PRIORITY_MIN并添加了Notification.FLAG_ONGOING_EVENT标志。这对华为手机有点帮助,但作用不大,现在延迟通知NotificationListenerService在屏幕打开后立即到达我的应用程序后。我不在startForeground()我的NotificationListenerService但在另一个中使用,Service因为我无法控制它的生命周期。

0 投票
0 回答
437 浏览

android - 没有 setAlarmClock() 的棉花糖上的精确重复警报

在一个应用程序中,我每 30 秒在后台获取加速器传感器值。由于 Android M 引入了打盹模式,在打盹模式下,除了setAlarmClock(). 但是如果setAlarmClock()时间很短会禁用打瞌睡并使用户对警报图标感到愤怒。

setExactAndAllowWhileIdle()不是解决方案,因为它是精确的 15 分钟。

我相信通过 Google Play 服务,他们可以在不使用 Fit API 的情况下将其存档setAlarmClock(),收集加速器传感器值并计算用户步数(离线)。

0 投票
1 回答
6561 浏览

android - 如何以编程方式关闭棉花糖设备中特定应用程序的打盹模式

Marshmallow API 与以前的 android OS 非常不同。当屏幕关闭时,设备处于打盹模式并且无法同步网络。因此,为了使用网络进行后台操作,我们必须防止打瞌睡模式。

0 投票
1 回答
2692 浏览

android - 一段时间后,Marshmallow 上的 AlarmManager 未设置或未触发

我已经成功地使用以下构造在我的一些应用程序中启动了一个 AlarmManager,直到 Android 5:

但是从 Marshmallow 开始,AlarmManager 要么未设置,要么在一段时间后不再触发。似乎当前正在运行的警报会再触发一次,但不会设置新的警报。

我阅读了一些文档,很可能是关于 Marshmallow Doze 的。所以我实现了以下(并检查它是否实际正在执行):

它不会改变任何东西。

有没有一种可靠的方法可以在 Marshmallow 闲置一段时间后设置和触发警报?

0 投票
1 回答
1716 浏览

android - 如何修复打瞌睡模式下错过闹钟的应用程序?

当带有 Marshmallow 的 android 设备进入打盹模式时,某些应用程序,尤其是那些不再维护的应用程序,会出现严重的异常行为。设计为闹钟替代品或调度程序以在未来执行某些任务的应用程序不再可靠地工作,完全违背了它们的目的。

解决方法对于开发人员来说是众所周知的,或者当受影响的应用程序是开源的时,例如在此处回答并此处记录。

但是,作者不再维护它们的闭源应用程序如何修复呢?

请注意,禁用应用程序的电池优化将无助于打盹模式,如此回答。

0 投票
2 回答
1175 浏览

android - Android N Doze 模式 - 如何保持后台下载和处理?

  1. 打盹模式是否有回调(在打盹第一/第二级,在维护窗口的开始/结束时)?
  2. 有没有办法解决不依赖于用户批准的打盹模式?
  3. 在以前的版本(Android M 和更小)中,我使用 Android 服务和部分唤醒锁在应用程序处于后台时下载和处理数据。当 Android N 进入打盹模式时,有没有办法在后台下载和处理数据?
0 投票
1 回答
7187 浏览

android - 打盹模式如何影响后台/前台服务,有/没有部分/全部唤醒锁?

这是一个简单的问题,看到 G+ 上有一篇关于此的大量帖子(此处),并且官方文档(此处)缺乏相关信息:

当设备进入“打瞌睡”模式时,应用程序的服务会发生什么?

它对后台/前台服务(绑定/未绑定,已启动/未启动)有什么作用,有/没有部分/全部唤醒锁?

例如,为了创建一个在设备屏幕关闭时播放音频流的服务,您会怎么做?如果音频流不是来自本地文件,而是来自网络怎么办?

看到有谷歌开发者声称:

一直在运行前台服务(带有相关通知)的应用程序不受打盹限制。

- 之后进行了大量讨论,声称这并不完全正确,我认为知道特殊的后台操作应用程序应该做什么是相当令人困惑的。

0 投票
1 回答
1732 浏览

android - DOZE 模式三星设备

我正在一个需要通过 DOZE 的 Android 6 中测试一个应用程序,因为我想请求用户接受电池优化的问题。

与项目 AntiDoze 一样,但是当我在虚拟设备中运行时,我没有任何问题,但是当我传递给三星时,我得到:

知道如何解决这个问题吗?

链接中重要的代码是:

在清单中我有

0 投票
0 回答
1031 浏览

android - 如何检测应用程序是否进入或退出应用程序待机模式(Android M+)

如果设备处于 DOZE IDLE 或 IDLE_MAINTENANCE 模式,如果我们为“ android.os.action.DEVICE_IDLE_MODE_CHANGED ”注册一个广播接收器,就可以接收到这些事件。但是,当使用 adb 命令使 App 进入App Standby时,此接收器不起作用。对于在 Marshmallow 及更高版本上运行的设备,我们是否可以以编程方式检查应用程序是否已进入或退出应用程序待机模式?

用于使 App 进入 App Standby 的 adb 命令

并退出