【问题标题】:Can I get the "onCycleEnd" event for AltBeacon Android SDK我可以获得 AltBeacon Android SDK 的“onCycleEnd”事件吗
【发布时间】:2017-01-12 21:39:05
【问题描述】:

我在我的应用程序中使用 AltBeacon 库,并且仅每隔几分钟运行一次扫描,无论是前台还是后台。不过,我真的很想知道扫描何时完成,因为我也想偶尔扫描非 LE 蓝牙设备。我看到有一个名为“onCycleEnd”的事件,这似乎是我正在寻找的,但我无法弄清楚当该事件触发时我如何(或是否)可以处理它。

有什么办法可以做到吗?

【问题讨论】:

    标签: android ibeacon-android altbeacon


    【解决方案1】:

    当循环结束时,didRangeBeaconsInRegion 触发。您应该能够在该回调上触发任何必要的逻辑。

    【讨论】:

    • 这似乎是 iOS SDK 解决方案 - 有没有办法在 Android SDK 中做类似的事情?我知道有一个名为“onCycleEnd”的事件,但它是 BeaconService 的成员(我认为),我认为我无法通过 BeaconManager 访问它。
    • 抱歉,刚刚意识到我之前的评论是错误的 - didRangeBeaconsInRegion 不是 iOS SDK 的东西,它在 Android SDK 中也是如此。但是,这是否表明扫描已完成?换句话说,如果我尝试基于 didRangeBeaconsInRegion 启动 BluetoothAdapter.startDiscovery(),适配器是否可以进行扫描?我想我得试试看 - 我会更新我的发现。
    • 我们可能在这里互相交谈...您当然可以随时致电BluetoothAdapter#startDiscovery(),它将启动“经典”蓝牙扫描以查找非LE设备。我认为您没有任何理由需要确保这不会在蓝牙 LE 扫描的同时进行。但是为了阐明 Android Beacon Library 在前台的工作方式,一旦它停止了一次 LE 扫描,它就会立即开始下一次扫描。在后台,它会在旧操作系统版本的扫描之间暂停,并在较新的操作系统版本上保持一次较长的低功耗扫描。
    • 有趣 - 我相信(可能是被误导的)BT 适配器不能同时用于经典和 LE 设备,但我会试一试看看。不过,附带的问题 - 在较新的操作系统版本的“一个长时间的低功耗扫描”上,我认为这将包括对它找到的此类设备的 NonBeaconLeScanCallback 的回调。如果这些设备就在附近,我认为这意味着它会不断“发现”这些设备——这也是“低功耗”吗?不断发现这类设备会影响电池寿命吗?
    • 好问题。低功率扫描使用过滤器仅查找与用于查找信标的特定前缀匹配的广告,如果匹配,则退出低功率扫描模式并返回正常扫描模式。如果这发生在后台,则正常扫描每 5 分钟间隔 10 秒。底线:低功率罐对非信标检测没有用处。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-30
    • 1970-01-01
    • 2016-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多