Android 在用户';她睡着了

Android 在用户';她睡着了,android,bluetooth,background,bluetooth-lowenergy,doze,Android,Bluetooth,Background,Bluetooth Lowenergy,Doze,我制作了一款在睡眠时监测人的健康的设备,它通过BLE连接到智能手机 它与iOS应用程序配合得很好。 但自从安卓世界出现打瞌睡模式后。 这真的很难处理,因为我的设备在他睡觉的时候工作 它的主要功能是检测特定的危险,并在用户使用设备睡觉时通知用户。我需要一个网络连接,当它发生 许多文章告诉我,如果我的应用程序在白名单中,我甚至可以在打瞌睡模式下使用网络。但在我测试了打瞌睡模式后,这似乎不是真的。 我说得对吗 我可以确保在我启动时可以在列表中找到我的应用程序 adb外壳转储系统设备 让我的应用程序正常

我制作了一款在睡眠时监测人的健康的设备,它通过BLE连接到智能手机

它与iOS应用程序配合得很好。 但自从安卓世界出现打瞌睡模式后。 这真的很难处理,因为我的设备在他睡觉的时候工作

它的主要功能是检测特定的危险,并在用户使用设备睡觉时通知用户。我需要一个网络连接,当它发生

许多文章告诉我,如果我的应用程序在白名单中,我甚至可以在打瞌睡模式下使用网络。但在我测试了打瞌睡模式后,这似乎不是真的。 我说得对吗

我可以确保在我启动时可以在列表中找到我的应用程序

adb外壳转储系统设备

让我的应用程序正常运行的最佳方法是什么?
  • 前台服务
  • 带有SetExactAndAllowHileId的报警管理器
  • GCM(意思是推,对吧?)
  • 还有别的吗
任何提示都会对我有帮助。 谢谢

编辑 不幸的是,我使用GCM进行了测试,但它只在短时间内唤醒了我的应用程序。这意味着我必须发送尽可能多的GCM,以使其保持清醒。我想我不能用它

许多文章告诉我,如果我的应用程序在白名单中,我甚至可以在打瞌睡模式下使用网络。但在我测试了打瞌睡模式后,这似乎不是真的。我说得对吗

你说得不对。当你的应用程序在白名单上时,doze的一个限制被解除,那就是当doze处于活动状态时能够使用网络

被列入白名单的应用程序可以在打瞌睡和应用程序待机期间使用网络并持有部分唤醒锁。然而,其他限制仍然适用于白名单上的应用程序,就像它们适用于其他应用程序一样。例如,白名单上的应用程序的作业和同步被延迟(在API级别23及以下),其常规AlarmManager警报不会触发

换句话说:如果你在白名单上,你应该能够在打瞌睡时使用网络

让我的应用程序正常运行的最佳方法是什么

考虑到你的应用程序是一个健康监视器,因此应该能够经常或至少非常定期地工作,你可以将该功能放在前台服务中。前台服务不受doze的影响

你应该知道,你应该有一个很好的理由使用前台服务,因为用户知道他们,但我认为你有一个健康监测等

注意:对于用户希望系统立即或不中断地执行的任务,应仅使用前台服务。此类情况包括将照片上传到社交媒体,或在音乐播放器应用程序不在前台的情况下播放音乐。您不应该仅仅为了防止系统确定您的应用程序处于空闲状态而启动前台服务


来自。

你好,蒂姆。谢谢你非常友好的回答。我真的很感谢你的帮助。我会像你说的那样再试一次,并分享结果。谢谢前台服务只会阻止应用程序待机模式冻结/杀死你的应用程序@behelit抱歉,什么?@TimCastelijns你提到的“前台服务不受打瞌睡的影响”。但它只与打瞌睡的“应用程序待机”部分有关,而不是深度睡眠打瞌睡understand@behelit没有“应用程序待机”部分或应用程序standy和doze是两个不同的东西