5

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

在阅读Doze Documentation有提网络接入一部分:

在打盹模式,系统将尝试通过限制 的应用的到网络和CPU密集的服务的访问,以节省电池。它还可以阻止 应用访问网络并推迟其作业,同步和 标准警报。

我相信Buetooth落在下网络访问,是正确的?

因为我没有自己的棉花糖(或Android N)启用的设备和仿真器,因为不允许蓝牙互动我真的不能测试在打盹模式我的应用程序的行为。

将休眠模式杀死任何正在进行的蓝牙联接?这同样适用于Bluetooth Classic和LE吗?那么蓝牙A2DP耳机呢?

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

肯定有某种这种情况下的例外在您的设备需要连接到一个蓝牙遥控器,只要用户whishes了。

我知道存在打盹白名单但它似乎它可能无法在某些情况下,让该应用程序的行为,因为它会在设备上低于API 23

谢谢您的帮助!

+0

我没有尝试,但我不认为蓝牙会受到影响 – greywolf82

+0

@ greywolf82感谢您的意见,这看起来很有希望!如果你有时间和手段,你可以试试吗?我真的很感激。谢谢 ! – Mackovich

+0

白名单允许您的应用访问网络,并保留部分唤醒锁。所有其他打盹限制仍然适用 –

回答

0

看起来像瞌睡没有蓝牙本身任何限制,但做任何有意义的事,你需要保持在CPU上,并唤醒锁定在更深的瞌睡被忽略。

如果这是你的应用程序的核心功能,您可以尝试要求用户whitelist您的应用程序。这可以授予partial wake locks并保持该CPU。

Foreground services也从任何瞌睡规定的限制所以这是另一种透明的方式。

+0

据我所知,前台服务只能免于杀死后台运行的应用程序,并且与深度睡眠打盹模式无关。 – behelit