Android 6.0中设置闹钟的精确方法

3

setAlarmclock()setAndAllowWhileIdle()setExactandAllowWhileIdle()是文档中描述的能够穿过Doze和App Standby模式的闹钟方法。

然而,有多个使用Google Clock的Nexus用户报告说他们的设备上闹钟无法正常工作(Google Clock使用setAlarmclock()方法和setExact()方法)。

setAndAllowWhileIdle()报告无法影响Doze模式,而setExactandAllowWhileIdle()据说可以工作,但只有15分钟的间隔。

我需要能够安排至少5分钟间隔的闹钟。这里应该采用什么方法?


1
每五分钟从服务器向设备上的应用程序发送GCM消息。 - CommonsWare
这是否属于非消息应用程序的可接受使用情况之一? - Piyush
2个回答

0

0

据我所知,目前没有解决方案能够满足您每5分钟触发警报的需求。您无法通过要求来解除设备的Doze模式。您需要想办法增加警报时间间隔。另外,对于非消息应用程序使用GCM消息可能会导致违反"白名单接受使用情况"

同时,当设备处于Doze模式时,您无法设置重复警报。您必须使用上述API设置警报,并在它们响起时重新注册!


但是如果设备不进入Doze模式,例如我使用AlarmClock.setAlarmClock()来设置闹钟,这种情况不就可以避免吗? - Piyush
如果不在待机模式下,那么它应该可以工作。虽然我必须承认我没有在 marshmallow 中尝试过这些 API。但是我猜想,根据您的需求,您不会让设备进入待机模式,因为您将每5分钟唤醒它。您是否在 marshmallow 上尝试过每5分钟重复间隔的API? - Uncaught Exception
是的,没错。但在Marshmallow的预览版中,据报道setExactAndAllowWhileIdle()无法正常工作。但在后续版本中已经修复了这个问题。我当时提出这个问题是为了消除疑虑。 - Piyush
哦,好的。我猜那个问题在最终版本中被消除了,因为最近我没有听说这些API会出现任何问题。希望你的应用程序能够顺利运行。 - Uncaught Exception
是的,在我测试过的所有设备上,一切似乎都运行良好,但是一些使用Google时钟的Nexus用户报告说他们的闹钟没有响起,正如我在问题中提到的那样。我也想澄清这个混淆点。 - Piyush
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接