【问题标题】:Android后台BLE信标扫描
【发布时间】:2020-11-25 15:56:09
【问题描述】:

我想创建一个具有 BLE 信标(如 Eddystone 或 ibeacon)背景扫描的 android 应用程序。我所需要的只是在我的手机上检测到具有特定 ID 的信标。我不需要设备之间的距离。

  1. 是否有任何信标能够在半径约 30m 的区域内通过建筑物中的 cca 3 墙(或 1 个上/下洪水)发送信号?

  2. 我的应用可以全天每隔几秒在后台扫描一次吗? (或者只是在蓝牙开启时,显然......)

我尝试了一些解决方案,但 android 改变了一些关于后台运行应用程序或蓝牙接收器的政策(以检测蓝牙何时开启)。我的解决方案有时甚至可以工作 7 个小时,但是当我重新启动手机时,应用程序没有重新启动。我想要一个完整的后台运行,而不是带有通知的前台服务。

谢谢!

【问题讨论】:

    标签: android bluetooth bluetooth-lowenergy beacon


    【解决方案1】:

    两点:

    1. 所有蓝牙信标格式都使用相同的无线电传输机制。无线电功率受到国际监管机构的限制,使发射机变弱。
      物理定律决定了它们在建筑物各楼层之间的移动程度,这会因建筑材料而异,但结果通常很差。同样,这对于所有信标格式都是相同的。

    2. Android 8+ 限制在没有前台服务的情况下在后台检测 BLE。当手机未处于深度睡眠模式时,您最多可以每 10-25 分钟进行一次扫描(这是随机的)。唯一的替代方案是具有始终存在的通知的前台服务。

    我知道这些不是您想听到的答案,但重要的是要认识到并接受现实世界中存在的限制,并在这些限制范围内提出创造性的解决方案。

    【讨论】:

    • 感谢您的快速回答。
    • 可以说,每 10 - 25 分钟扫描一次对我来说就足够了。并且用户将在进入信标范围之前至少 45 分钟使用他的手机。我可以确定,该应用程序会工作吗?或者手机重启,或者三星、华为等的自定义省电模式会杀了它?
    • 一般来说,是的,这行得通。但遗憾的是,Android 后台应用程序的生活中没有什么是简单的!所有较新的 Android 设备都有某种节电功能,可以在后台禁用应用程序。华为等中国 OEM 通常拥有用户可编辑的应用程序白名单,任何不在白名单上的应用程序最终都会被拒绝后台运行时间。在开源 Android(Pixel、Android One)和 Samsung App Standby 存储桶上使用。如果用户多天不与应用交互,后台操作将被禁用。用户可以禁用此功能。
    猜你喜欢
    • 2013-09-24
    • 2013-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多