如何使用Swift扫描非LE设备?

时间:2019-07-01 15:22:33

标签: ios swift iphone core-bluetooth

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

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

我试图编写一个iOS应用程序,扫描此设备并使用快速的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;
        }
    }
}

2 个答案:

答案 0 :(得分:2)

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

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

设备说它也支持HID配置文件,因此也许您可以将其当作键盘来对待。这不需要任何代码,但不是最佳的用户体验。

答案 1 :(得分:-1)

您需要使用CoreNFC读取RFID标签。完全不需要使用CoreBluetooth。

https://developer.apple.com/documentation/corenfc