首页 文章

连续扫描BLE-MAC

提问于
浏览
0

是否有库可以对具有特定MAC的蓝牙低功耗设备进行后台扫描?我知道altbeacon这样做,但似乎只适用于信标类型的BLE设备 - 而不是其他类型 . 或者有没有办法利用altbeacon这个?我只是想检测某个设备是否打开并且在范围内 - 据我所知,这应该可能类似于信标 - 我只是不过滤广告中的某些数据 - 仅适用于mac . 我可以实现这一点,但不想重新发明轮子

1 回答

  • 2

    为了给你一个强大的解决方案,消耗少量的能量,并适用于所有操作系统版本与其不同的扫描API将是数百行复杂的代码 . 我知道因为我已经完成了,所以请参阅https://github.com/iDevicesInc/SweetBlue/blob/master/src/com/idevicesinc/sweetblue/P_Task_Scan.java,了解您必须处理的内容 .

    因此,如果您处于概念验证阶段并且只是想要快速的东西,请使用SweetBlue在Activity类中尝试以下内容:

    // Wake lock might not be needed for your application, up to you.
    BleManager.get(this).pushWakeLock();
    
    BleManager.get(this).setConfig(new BleManagerConfig()
    {{
            scanMode = BleScanMode.LOW_POWER;
    }});
    
    BleManager.get(this).startPeriodicScan(Interval.FIVE_SECS, Interval.FIVE_SECS, new ScanFilter()
    {
        @Override public Please onEvent(ScanEvent e)
        {
            return Please.acknowledgeIf(e.macAddress().equals("DE:CA:FF:C0:FF:EE"));
        }
    });
    

    这将使您扫描五秒钟,五秒钟关闭,重复直到您拨打 stopPeriodicScan() .

相关问题