首页 > 解决方案 > 如何使用 Swift 扫描非 LE 设备?

问题描述

我有 RFID 阅读器,它不是LE 设备。

https://www.tsl.com/products/1153-bluetooth-wearable-uhf-rfid-reader

我正在尝试编写一个 iOS 应用程序,扫描此设备并使用 swift CoreBluetooth 库连接它,但我的应用程序找到了除此设备之外的所有内容。怎么可能扫描这个阅读器?

import UIKit
import CoreBluetooth

class ViewController: UIViewController, CBCentralManagerDelegate {

    var manager: CBCentralManager!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        manager = CBCentralManager(delegate: self, queue: nil)
    }

    func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) {
        print(peripheral)
    }

    func centralManagerDidUpdateState(_ central: CBCentralManager) {
        switch central.state {
        case .unknown:
            break;
        case .poweredOff:
            break;
        case .poweredOn:
            manager.scanForPeripherals(withServices: nil)
            break;
        case .resetting:
            break;
        case .unauthorized:
            break;
        case .unsupported:
            break;
        default:
            break;
        }
    }
}

标签: iosswiftiphonecore-bluetooth

解决方案


该设备声明已通过 MFi 认证并使用 SPP 配置文件,而不是 BLE GATT 配置文件。这意味着您将需要使用外部附件框架而不是核心蓝牙与它进行通信。

您将需要制造商为设备提供的iOS SDK。如果他们这样做并且您想在 App Store 上发布您的应用程序,那么他们还需要批准您的应用程序并向 Apple 提供一些文件。

该设备表示它还支持 HID 配置文件,因此也许您可以将其视为键盘;这不需要任何代码,但不是最好的用户体验。


推荐阅读