私の周りの低エネルギーの周辺機器を見つけるために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