首页 文章

Altbeacon扫描命令

提问于
浏览
0

我在Android设备(android-beacon-library)上使用AltBeacon进行蓝牙iBeacon检测 . 目前,我能够获取信标的唯一方法是通过回调: RangeNotifier .

然而,我想要的功能是每5秒,对附近的信标执行扫描,并且总共只执行10次(即扫描大约一分钟) . 我希望能够在for循环中进行扫描,但到目前为止,似乎唯一的方法是使用回调,我无法控制它何时被触发 .

有没有人知道使用Android AltBeacon这种行为是否可行?

1 回答

  • 2

    该库不是为这种特殊扫描而设计的,但可以使用以下技术执行您想要的操作:

    • 使用以下步骤将扫描周期设置为5秒:
    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);
      }
    }
    

相关问题