Altbeacon 命令扫描
Altbeacon Scan on Command
我在 Android 设备(android-beacon-library)上使用 AltBeacon 进行蓝牙 iBeacon 检测。目前,我能够获取信标的唯一方法是通过回调:RangeNotifier
。
但是,我想要的功能是每 5 秒扫描一次附近的信标,总共只扫描 10 次(即扫描大约一分钟)。我希望能够在 for 循环中进行扫描,但似乎到目前为止唯一的方法是使用回调,我无法控制它何时被触发。
有谁知道使用 Android AltBeacon 是否可以实现此行为?
该库不是为这种临时扫描而设计的,但可以使用以下技术执行您想要的操作:
将扫描周期设置为五秒:
mBeaconManager.setForegroundBetweenScanPeriod(5000l);
开始测距时设置开始时间戳:
mScanStartTime = System.currentTimeMillis();
mBeaconManager.startRangingBeaconsInRegion(region);
扫描回调将每五秒调用一次,并显示检测到的信标列表。处理这些信标,并在 50 秒(10 次扫描)过去后停止扫描:
@Override
public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) {
// Process beacons here
if (System.currentTimeMillis() - mScanStartTime > 50*1000l) {
mBeaconManager.stopRangingBeaconsInRegion(region);
}
}
我在 Android 设备(android-beacon-library)上使用 AltBeacon 进行蓝牙 iBeacon 检测。目前,我能够获取信标的唯一方法是通过回调:RangeNotifier
。
但是,我想要的功能是每 5 秒扫描一次附近的信标,总共只扫描 10 次(即扫描大约一分钟)。我希望能够在 for 循环中进行扫描,但似乎到目前为止唯一的方法是使用回调,我无法控制它何时被触发。
有谁知道使用 Android AltBeacon 是否可以实现此行为?
该库不是为这种临时扫描而设计的,但可以使用以下技术执行您想要的操作:
将扫描周期设置为五秒:
mBeaconManager.setForegroundBetweenScanPeriod(5000l);
开始测距时设置开始时间戳:
mScanStartTime = System.currentTimeMillis(); mBeaconManager.startRangingBeaconsInRegion(region);
扫描回调将每五秒调用一次,并显示检测到的信标列表。处理这些信标,并在 50 秒(10 次扫描)过去后停止扫描:
@Override public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) { // Process beacons here if (System.currentTimeMillis() - mScanStartTime > 50*1000l) { mBeaconManager.stopRangingBeaconsInRegion(region); } }