- 所有公开 API 改为 completion handler (Result<T, Error>) - 状态通知改为 DuooomiBleSDKDelegate 协议 - 移除 Sendable、@MainActor、AsyncStream、CheckedContinuation - 网络请求改为 URLSession.dataTask 回调 - BLE 通信改为 delegate + 闭包模式 - deployment target 降至 iOS 12.2 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
35 lines
1.7 KiB
Swift
35 lines
1.7 KiB
Swift
import Foundation
|
||
|
||
/// SDK 状态变化回调协议,替代 Combine @Published 观察。
|
||
/// 所有方法在主线程调用。
|
||
public protocol DuooomiBleSDKDelegate: AnyObject {
|
||
/// 蓝牙连接状态变化
|
||
func sdk(_ sdk: DuooomiBleSDK, didChangeState state: ConnectionState)
|
||
/// 扫描到的设备列表更新
|
||
func sdk(_ sdk: DuooomiBleSDK, didUpdateDevices devices: [DiscoveredDevice])
|
||
/// 已连接设备变化
|
||
func sdk(_ sdk: DuooomiBleSDK, didConnectDevice device: DiscoveredDevice?)
|
||
/// 设备信息更新
|
||
func sdk(_ sdk: DuooomiBleSDK, didUpdateDeviceInfo info: DeviceInfo?)
|
||
/// 固件版本更新
|
||
func sdk(_ sdk: DuooomiBleSDK, didUpdateVersion version: String)
|
||
/// 激活状态变化
|
||
func sdk(_ sdk: DuooomiBleSDK, didChangeActivation isActivated: Bool)
|
||
/// 传输进度更新 (0-100)
|
||
func sdk(_ sdk: DuooomiBleSDK, didUpdateProgress progress: Int)
|
||
/// 错误发生
|
||
func sdk(_ sdk: DuooomiBleSDK, didEncounterError error: String?)
|
||
}
|
||
|
||
/// 所有 delegate 方法提供默认空实现,调用方只需实现关心的方法。
|
||
public extension DuooomiBleSDKDelegate {
|
||
func sdk(_ sdk: DuooomiBleSDK, didChangeState state: ConnectionState) {}
|
||
func sdk(_ sdk: DuooomiBleSDK, didUpdateDevices devices: [DiscoveredDevice]) {}
|
||
func sdk(_ sdk: DuooomiBleSDK, didConnectDevice device: DiscoveredDevice?) {}
|
||
func sdk(_ sdk: DuooomiBleSDK, didUpdateDeviceInfo info: DeviceInfo?) {}
|
||
func sdk(_ sdk: DuooomiBleSDK, didUpdateVersion version: String) {}
|
||
func sdk(_ sdk: DuooomiBleSDK, didChangeActivation isActivated: Bool) {}
|
||
func sdk(_ sdk: DuooomiBleSDK, didUpdateProgress progress: Int) {}
|
||
func sdk(_ sdk: DuooomiBleSDK, didEncounterError error: String?) {}
|
||
}
|