저의 주위에있는 블루투스 저에너지 주변기기를 찾으려면 CBCentralManager를 사용하고 싶습니다. CentralManager가 시작되고 올바르게 시작되고 검색 중입니다. 하지만 didDiscover 함수는 호출되지 않습니다. 이 문제와 비슷한 문제에 대한 다른 모든 게시물을 읽고 내 문제가 같은 원인이 아니라는 것을 99 % 확신합니다. 아직도, 나는 내가 잘못한 것을 발견 할 수 없다.않았다 주변 기기가 발견되지 않았습니다.
import Foundation
import CoreBluetooth
@objc(SmallerBeaconServiceImpl)
class SmallerBeaconServiceImpl : NSObject, CBCentralManagerDelegate, CBPeripheralDelegate {
private let centralManager : CBCentralManager
func centralManagerDidUpdateState(_ central: CBCentralManager) {
if central.state == CBManagerState.poweredOn && isRunning {
startScanningForPeripherals()
}
print("updated state: \(central.state)")
}
func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) {
print(peripheral.name ?? "no name")
}
func startScanningForPeripherals() {
if centralManager.state != CBManagerState.poweredOn {
return
}
centralManager.scanForPeripherals(withServices: nil, options: nil)
print("is scanning: \(centralManager.isScanning)")
}
private(set) var isRunning = false
func startListening() {
if isRunning {
return
}
isRunning = true
print("started.")
startScanningForPeripherals()
}
func stopListening() {
if !isRunning {
return
}
isRunning = false
centralManager.stopScan()
}
override init() {
centralManager = CBCentralManager()
super.init()
print("initiated")
}
}
당신은 centralManager''의 대리자를 설정하지 않은 :
이
는 고정 될 수있다. – Larme@Larme : 나는 이것을 받아 들일 수 있도록 대답으로 추가 할 것입니다. –
확실히 도움이되었습니다. 고맙습니다! 나는 이것을 정답으로 표시하고 싶다! – user6155118