Android 在附近的消息API中触发onLost事件时

Android 在附近的消息API中触发onLost事件时,android,beacon,eddystone,google-nearby,Android,Beacon,Eddystone,Google Nearby,我正在开发附近的消息API,以便在后台启动我的应用程序中的服务,只要在附近检测到Eddystone信标 它工作正常,但我观察到,每次我重新启动蓝牙时,它都会触发onFound事件 但我想在每次I(android设备)进入信标范围时触发onFound事件(蓝牙将始终处于开启模式) 调试后,我发现发生这种情况是因为当我离开我的信标范围时,onLost事件没有触发,相反,onLost只在我关闭蓝牙时触发 所以我的问题是,onLost事件的预期行为是什么,是否可能是我所想的 提前感谢您的意见 来自: 当

我正在开发附近的消息API,以便在后台启动我的应用程序中的服务,只要在附近检测到Eddystone信标

它工作正常,但我观察到,每次我重新启动蓝牙时,它都会触发onFound事件

但我想在每次I(android设备)进入信标范围时触发onFound事件(蓝牙将始终处于开启模式)

调试后,我发现发生这种情况是因为当我离开我的信标范围时,onLost事件没有触发,相反,onLost只在我关闭蓝牙时触发

所以我的问题是,onLost事件的预期行为是什么,是否可能是我所想的

提前感谢您的意见

来自:

当附近不再检测到消息时调用。 注意:此回调当前最适用于连接到BLE信标的消息。对于其他消息,可能无法及时调用,或者根本无法调用。 不会重复调用此方法(除非在丢失的调用之间再次找到消息)


您应该尝试远离(或关闭)信标,这将触发“onLost”,就像关闭蓝牙一样

当附近的扫描至少10秒无法检测到信标时,将触发onLost回调(根据经验超时,我没有找到任何官方值)

在前景扫描的情况下,这种情况很容易发生。扫描始终处于活动状态,10秒后附近能够检测到“丢失”的信标

在背景扫描的情况下,情况变得复杂。扫描仅在事件的屏幕上执行,因此onLost可以在很久以后触发

我认为关闭附近的蓝牙触发器和以前发现的信标会丢失。这就是为什么当你关闭蓝牙时,你会发现onLost。如果您正在使用后台扫描,当其他应用程序进行扫描时,您将获得更新。所以,若你们离开信标的范围,等待10秒,然后由其他应用程序执行扫描,你们应该得到onLost回调

这同样适用于onFound


我想这并不能解决您的问题,但希望它能回答您的问题……

谢谢您的回答。实际上它不起作用,因为在后台模式下,附近的消息API只有在屏幕打开事件后才能工作。现在我正在寻找其他方法来实现这一点(无需在事件上显示屏幕)。如果到目前为止您已经实施,请建议任何其他方式。
public void onLost (Message message)