Ble beacon Android Oreo和P不会从打盹模式唤醒应用程序

问题描述 投票:0回答:1

我有一个使用蓝牙信标的应用程序。当应用程序处于打盹模式时,来自蓝牙信标的邻近通知不会唤醒手机。只有当我解锁手机时才会发送通知。此问题对于已被杀死的前景或应用程序是相同的。

android android-8.0-oreo beacon android-9.0-pie android-doze-and-standby
1个回答
1
投票

从Android 6.0开始,Doze模式会阻止任何蓝牙扫描回调或其他事件,包括信标检测。我在2015年谷歌I / O会议期间与Android蓝牙工程师讨论了这个问题。他们的立场是,因为感知到的动作将退出打盹模式,这不是问题,因为手机通常无法发现新的蓝牙信标,当它一动不动时因此可能在同一个地方。

虽然对于大多数用例来说都是如此,但有一些例外:(1)在直线路径上单向上的火车或其他车辆上,加速度计不会检测到运动,手机可能会进入打瞌睡状态动作并可能看到新的信标。 (2)在某些用例中,信标广告是动态的,因此它们在同一个案例中出现和消失。在这两种情况下,如果Android设备处于打盹模式,它们就无法检测到新的信标广告。

这是一个不幸的限制,你必须简单地设计。

编辑:从Android 7开始,有两种类型的打盹模式,重和轻。当屏幕关闭但手机不动时,轻度打盹模式会启动。当屏幕关闭且设备静止一段时间时,重度打盹模式会启动。在轻度打盹模式下,信标检测正常传送。在重度打盹模式下,他们不应该是谷歌的。但是,在某些设备上他们这样做。我看到他们在搭载Android 8.0并运行前台服务的三星Galaxy S8上以重度打盹方式交付。

© www.soinside.com 2019 - 2024. All rights reserved.