ios - 如何使用 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;
}
}
}
解决方案
该设备声明已通过 MFi 认证并使用 SPP 配置文件,而不是 BLE GATT 配置文件。这意味着您将需要使用外部附件框架而不是核心蓝牙与它进行通信。
您将需要制造商为设备提供的iOS SDK。如果他们这样做并且您想在 App Store 上发布您的应用程序,那么他们还需要批准您的应用程序并向 Apple 提供一些文件。
该设备表示它还支持 HID 配置文件,因此也许您可以将其视为键盘;这不需要任何代码,但不是最好的用户体验。
推荐阅读
- angular - 如何使用angular4将选定的选项值发布到角度材料表
- asp.net-mvc - 是否可以在 MVC Razor 中结合 Html.LabelFor CSS 类和文本值?
- jquery - 选择标记中的选项未附加在 jquery 中
- c - 了解 valgrind memcheck 工具中的内存泄漏类型
- server-sent-events - 气氛回退不起作用?
- javascript - 如何使用 Id 将页面重定向到另一个页面
- firebase - php-curl 和浏览器调用 php 脚本发送 http 请求有什么区别?
- google-app-engine - GAE 数据存储区读取操作定价
- mysql - Magento 数据库导入问题
- php - 使用按钮将数据从一个表移动到另一个表 Laravel