Android打盹模式 - 蓝牙

时间:2016-03-12 10:06:39

标签: android bluetooth android-6.0-marshmallow android-7.0-nougat android-doze

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

在阅读Doze Documentation时,有一部分提及网络访问

  

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

我相信 Buetooth 属于网络访问,这是正确的吗?

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

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

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

当然,对于这种情况存在某种例外情况,即用户需要将设备连接到蓝牙远程设备的时间也是如此。

我知道存在 Doze Whitelist ,但在某些情况下,它可能不会让应用程序在API 23以下的设备上运行。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

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

如果它是您应用的核心功能,您可以尝试让用户whitelist您的应用。这可以授予partial wake locks并保持cpu开启。

Foreground services也免除任何打盹限制,因此这是另一种透明的方式。

相关问题