即使应用程序在 Android Oreo 或更高版本中被杀死,如何在后台扫描 IBeacon 以查找特定的 UUID?

How to scan IBeacon for a specific UUID in background even when the Application is killed in Android Oreo or later?

即使应用程序在 Android Oreo 或更高版本中被终止,我也想在后台扫描 IBeacon 以查找特定的 UUID。有什么方法或者demo吗?如果使用Android Beacon Library,如何指定具体的UUID? 谢谢!

是的,在 Android 上终止应用程序后通常可以检测到信标,但有一定的限制。 Android Beacon 库内置了此功能,详情请见 here确保您了解文档中描述的限制。 终止应用程序后的检测不是即时的,通常在 Android 8+ 设备上最多需要 25 分钟,但这种情况很少见开发人员测试之外的问题。只是不要错误地关闭应用程序,立即打开信标,然后认为它不起作用,因为您没有立即收到通知。你得等一下。

reference application 展示了这种能力。该引用搜索任何信标,但很容易修改为仅搜索特定的 UUID。为此,只需更改以下代码即可。

发件人:

        // wake up the app when a beacon is seen
        Region region = new Region("backgroundRegion",
                null, null, null);
        regionBootstrap = new RegionBootstrap(this, region);

收件人:

        // wake up the app when a beacon is seen
        Region region = new Region("backgroundRegion",
                "2F234454-CF6D-4A0F-ADF2-F4911BA9FFA6", null, null);
        regionBootstrap = new RegionBootstrap(this, region);

正在用您的 ProximityUUID 替换 2F234454-CF6D-4A0F-ADF2-F4911BA9FFA6