6

我的问题很简单。我想知道我的应用程序的最佳做法是什么,以便它可以“防打瞌睡”。这变得更加相关,因为 Android N 将在更多情况下应用 Doze。

在阅读Doze 文档时,有一部分提到了网络访问

在打盹模式下,系统会尝试通过限制应用程序访问网络和 CPU 密集型服务来节省电池电量。它还可以阻止应用程序访问网络并推迟它们的工作、同步和标准警报。

我相信Buetooth属于Network Access,对吗?

由于我没有启用 Marshmallow(或 Android N)的设备,并且由于 Emulator 不允许蓝牙交互,因此我无法在打盹模式下真正测试我的应用程序行为。

打盹模式会杀死任何正在进行的蓝牙连接吗?同样适用于蓝牙经典和 LE 吗?带蓝牙 A2DP 的耳机怎么样?

我的应用程序必须保持此连接,否则核心功能将被破坏。

当然,在这种情况下,只要用户愿意,您的设备就需要连接到蓝牙远程设备。

我知道存在打瞌睡白名单,但在某些情况下,它似乎不会让应用程序像在低于 API 23 的设备上那样运行。

谢谢您的帮助!

4

1 回答 1

0

看起来打瞌睡对蓝牙本身没有任何限制,但要做任何有意义的事情,您需要保持 cpu 开启,并且在更深的打瞌睡中忽略唤醒锁。

如果它是您应用的核心功能,您可以尝试要求用户将您的应用列入白名单。这可以授予部分唤醒锁并保持 CPU 开启。

前台服务也不受任何打瞌睡限制,因此这是另一种透明的方式。

于 2017-03-15T04:36:06.237 回答