我有一个使用蓝牙信标的应用程序。当应用程序处于打ze模式时,来自蓝牙信标的邻近通知不会唤醒手机。仅当我解锁手机时,通知才会发送。对于已被杀死的前台或应用程序,此问题相同。
答案 0 :(得分:1)
从Android 6.0开始,打ze模式会阻止任何蓝牙扫描回调或其他事件,包括信标检测。我在Google I / O 2015的一次会议上与Android蓝牙工程师讨论了此问题。之所以如此,是因为感应到的运动将退出“打,”模式,所以这不是问题,因为当手机静止不动并因此可能在同一位置时,手机通常无法发现新的蓝牙信标。
尽管在大多数使用情况下都是如此,但有一些例外:(1)在火车或其他车辆上,在一条直线路径上的单个方向上,加速度计将无法检测到运动,并且手机可能会进入打Do状态尽管运动中并可能看到新的信标。 (2)在某些用例中,信标广告被构建为动态的,因此它们在同一情况下出现和消失。在这两种情况下,如果Android设备处于打ze模式,它们根本无法检测到新的信标广告。
这是一个不幸的限制,您必须简单地设计一下。
编辑:从Android 7开始,有两种类型的打ze模式,重和轻。当屏幕关闭但手机并非静止不动时,轻打ze模式即会启动。屏幕关闭且设备在一段时间内保持静止不动时,将进入“重打ze睡”模式。在轻打ze模式下,信标检测正常传递。在重打ze睡模式下,他们不应该根据Google的说法。但是,在某些设备上确实如此。我看到它们在运行Android 8.0且运行前台服务的Samsung Galaxy S8上以沉睡模式交付。