问题标签 [android-doze-and-standby]
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.
android - 打盹/待机功能如何影响位置更新?
有谁知道当设备处于打盹或应用处于待机状态时,持有部分唤醒锁定的白名单应用是否可以接收位置更新?
Android 文档 ( http://developer.android.com/training/monitoring-device-state/doze-standby.html ) 仅声明 CPU 和网络被延迟并且没有提及对位置更新的任何影响(即来自 LocationManager )。基于此,位置更新似乎不受 Doze/Standby 的影响,因此如果应用程序持有部分唤醒锁定(以保持 CPU 运行),那么应用程序应该能够接收位置更新。
我已经实现了这一点并对其进行了测试,发现应用程序似乎没有在 Doze 中接收位置更新,即使它具有部分唤醒锁定并被列入白名单。有趣的是,当我将设备放在办公桌上一夜之间运行带有唤醒锁的应用程序时,早上电池几乎没电了,但是当我在没有唤醒锁的情况下重复使用应用程序时,早上电池几乎是满的。因此,该应用程序似乎一直在运行,但没有接收到位置更新。
一些额外的背景:该应用程序用于车队跟踪,因此我们正在尝试确定是否有任何应用程序运行后台服务,以便在使用电池供电时可靠地接收位置更新。
谢谢!——汤姆·B。
android - 如何在棉花糖上强制打瞌睡?
一切似乎都指向这两个命令:
我按照运行 Marshmallow 官方版本的 Nexus 6 上的说明进行操作。我将手机插入我的测试机。我设置了我的应用程序来测试我想用打瞌睡测试的部分。我关掉屏幕。在上面运行之后battery unplug
,我没有得到任何输出,所以我认为它可以工作,但每次我运行deviceidle step
输出总是Stepped to: ACTIVE
.
我不确定这是否重要,但我正在尝试测试的应用程序的特定功能是我正在设置的警报,它应该将手机从打盹中唤醒。PendingIntent
我希望我的设备在我的计划起飞时处于打瞌睡AlarmManager.setAlarmClock
状态。这会阻止我的设备进入打盹吗?
android - App Standby 需要空闲多长时间才能启动(Android Marshmallow)
我已经在整个互联网上查找有关Android Marshmallow 中应用待机模式的详细信息,但除了一些可能导致它发生的列出的条件之外,我没有找到任何关于它何时发生的具体数据。我还看到一个模糊的“如果设备长时间处于空闲状态,系统允许空闲应用程序每天访问一次网络”,而没有具体说明该窗口的时间长度。
打盹模式似乎得到了很好的研究(这个要点特别有用并且与我的发现一致),但我还没有看到 App Standby 的实际应用。我创建了一个测试应用程序,它每 5 分钟通过警报向服务器发送数据并运行一周,它继续每 5 分钟访问服务器一次,除非手机进入打盹模式并且仅在维护期间访问服务器,然后在手机被唤醒时回到每 5 分钟一次,所以即使我没有直接与应用程序交互,Android 似乎也没有将它置于“App Standby”状态。
是否有关于 App Standby 工作原理的具体数据?
android - VoIP 应用程序的打盹和待机模式
我有一个旧版 VoIP 应用程序,我想为其提供 Android 的新打盹和待机模式支持。我有自己的消息/信号机制,我无法使用 Android 的 GCM 功能。文档指出,将应用程序列入白名单将允许使用自己的信号机制并使应用程序在打盹模式下保持活动状态。
此外,我正在使用setExtract()
并setRepeating()
当前使用 XMPP 的持久连接来生成 keepAlive 警报。如果我setExactAndAllowWhileIdle
为较新版本添加,则说明 - 每 15 分钟最多触发一次警报。但我需要每隔 12 秒生成 1 个。我浏览了 Android 文档,SO 中的许多线程,并找到了一篇关于它的文章。AlarmManager
通过将应用程序列入白名单并使用新的 API ,似乎我想要实现的目标并不完全可能。
我可以做些什么来保持我的功能和以前一样?在打盹和待机模式下保持应用程序处于活动状态,以 12 秒的间隔生成警报警报以保持连接处于活动状态并保持网络连接打开?
android - 如何设置即使在打盹模式下也能正常工作的重复警报?
我知道即使在打盹模式下 setExactAndAllowWhileIdle 也会调用警报,但是如何让它每天重复,因为没有 setRepeatingAndAllowWhileIdle 类型的方法。
android - 音频播放期间的打盹模式/应用程序待机
我注意到我在 Android 6.0 设备上的音频流应用程序存在问题。音频流是通过 HLS 通过网络连接完成的。音频播放发生在具有活动通知的前台服务中。我注意到的是,当应用程序进入打盹模式/应用程序待机时,wifi 连接丢失并且播放暂停。我的服务在前台,并且有一个活动通知,根据文档,应该使我的应用程序不被中断。我还获得并维护了一个 Wifi Lock。我已经阅读了有关将我的应用列入白名单的信息,但是像 Spotify 这样的应用不需要任何特殊权限来避免这个问题。有什么想法或建议吗?
android - Android 6.0 打盹模式中的警报管理器问题
我制作了一个在 Android 6.0 之前一直有效的应用程序。我认为这是打瞌睡功能,它不允许我的闹钟触发。
我使用 sharedpreferences 来处理选项:
这里有什么问题的任何线索?
这是一个阻止呼叫的应用程序。谢谢!
编辑: 我有 3 个文件(更多但是...),例如:
android - setAndAllowWhileIdle 和 setExactAndAllowWhileIdle 之间的区别
AlarmManager.setAndAllowWhileIdle()
和有什么区别AlarmManager.setExactAndAllowWhileIdle()
?这两者如何影响 Android 6.0 (Marshmallow) API 中引入的打盹模式?
android - Android 6.0 中的打盹和应用待机模式
Google 在 Android 6.0 操作系统中引入了 Doze 和 App Standby 模式。如果设备被拔出并且在一段时间内未使用并且如果应用程序在一段时间内保持非活动状态,则
设备将进入模式,该应用程序进入模式(如果我错了,请纠正我)。
Doze
StandBy
- 我们(开发人员)可以知道,设备进入
Doze
模式还是应用程序进入StandBy
模式?如何?
http://developer.android.com/training/monitoring-device-state/doze-standby.html#whitelisting-cases在此链接中,谷歌表示,Voip
或Chat
或应用程序在设备处于模式
Calling
时仍然可以工作。Doze
- 操作系统将如何知道这是
Voip
或chat
或Calling
应用程序,所以我也会让它在Doze
模式下保持清醒。?- 当应用程序退出模式时,我需要注册什么回调来完成维护任务
Doze
。?
android - GCM 优先级消息不会唤醒我的应用
我有我的 Android 设备优化我的应用程序。所以我的应用程序正在后台休眠,但如果收到优先级 GCM 消息,它应该会唤醒。正如这里所说:
高优先级。GCM 尝试立即传递高优先级消息,允许 GCM 服务在可能的情况下唤醒睡眠设备并打开与您的应用服务器的网络连接。例如,具有即时消息、聊天或语音呼叫警报的应用程序通常需要打开网络连接并确保 GCM 将消息及时传递到设备。
在这里:
通过高优先级 GCM 消息,GCM 已针对 Doze 和 App Standby 空闲模式进行了优化。GCM 高优先级消息让您可以可靠地唤醒您的应用程序以访问网络,即使用户的设备处于打盹或应用程序处于应用程序待机模式。在 Doze 或 App Standby 模式下,系统传递消息并让应用程序临时访问网络服务和部分唤醒锁,然后将设备或应用程序返回到空闲状态。
我使用此代码将优先级消息从我的 C# 服务器发送到 Android 设备:
但我的应用程序没有唤醒。即使我解锁设备。
我发现一旦我的设备“阻止”我的应用程序进入优化列表,那么我的应用程序将不会再收到任何消息。似乎系统只是完全杀死了应用程序,它不会收到任何 GCM 消息。我正在使用带有 Lollipop 的 Galaxy S4。有什么帮助吗?