我有一个智能门解锁硬件设备,它同时充当 iBeacon 和 CoreBluetooth 外设!
我的要求是当我的应用程序第一次启动时,应用程序将开始监控 iBeacon 区域,当用户的距离小于 10 米时,应用程序应该开始使用特定的 CBService 扫描 BLE 外围设备。
当用户进入 0.5 米距离内时,应用程序应自动连接扫描到的 CBPeripheral 设备并处理开门操作。
您可以想象它,因为当您离建筑物入口更近(约 10 米远)并开始扫描最近的蓝牙硬件时,应用程序将被激活。当您到达入口时,通过执行一些蓝牙操作,门将自动打开。
谁能帮助我如何使用 CoreBluetooth 技术实现类似的行为?
这个应用程序也应该在后台模式下工作。
到目前为止我所做的是,开始了 iBeacon 区域监控和回调
func locationManager(_ manager: CLLocationManager, didRangeBeacons beacons: [CLBeacon], in region: CLBeaconRegion) {
// I am using beacon's accuracy as distance calculation.
// When accuracy is < 10 meter, I am starting Peripheral scanning using: centralManager.scanForPeripherals(withServices: [{My Custom Service UUID}], options: [CBCentralManagerScanOptionAllowDuplicatesKey: false])
}
我的蓝牙管理器收到关于
func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) {
}
现在,当距离小于 0.5 米时,如何使用 iBeacon 和 Discovered Peripheral 进行映射并与 Peripheral 自动连接。
简而言之,我的手机应该用作身份验证和考勤管理的 RFID 卡
我想实现以下视频中显示的类似行为: https ://www.youtube.com/watch?v=Y6XlVE7UKp0