2017-08-25 7 views
0

私はCore Bluetooth Macアプリケーションで作業していましたが、私はMac上で発見部分の問題に遭遇しました。このコードは、私のmacのBluetooth設定で同じデバイスが表示されているにもかかわらず、デバイスを検出できませんでした。明らかにそれはコードの問題ですが、私はそれを把握していないようです。コード:私のMacがこのコアBluetoothアプリケーションのデバイスを検出しないのはなぜですか?

import Cocoa 
import CoreBluetooth 

class ViewController: NSViewController, CBCentralManagerDelegate { 
var centralManager: CBCentralManager! 
override func viewDidLoad() { 
    super.viewDidLoad() 
    centralManager = CBCentralManager(delegate: self, queue: DispatchQueue.main) 

    // Do any additional setup after loading the view. 
} 

override var representedObject: Any? { 
    didSet { 
    // Update the view, if already loaded. 
    } 
} 

func setupBT() { 

} 

func centralManagerDidUpdateState(_ central: CBCentralManager) { 
    var statusMessage = "" 
    switch central.state { 
    case .poweredOn: 
     statusMessage = "Bluetooth Status: Turned On" 

    case .poweredOff: 
     statusMessage = "Bluetooth Status: Turned Off" 

    case .resetting: 
     statusMessage = "Bluetooth Status: Resetting" 

    case .unauthorized: 
     statusMessage = "Bluetooth Status: Not Authorized" 

    case .unsupported: 
     statusMessage = "Bluetooth Status: Not Supported" 

    default: 
     statusMessage = "Bluetooth Status: Unknown" 
    } 

    print(statusMessage) 
} 

func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) { 
    print("Discovered") 
} 
} 

「オンになっていますが、「発見」されていません。私は複数のBluetoothデバイスとスピーカーを試しました。

+0

CoreBluetoothにデバイスの検出を指示していません。あなたは 'scanForPeripherals'を呼び出す必要があります – Paulw11

答えて

0

周辺機器を検出するには、scanForPeripherals(withServices:options:)に電話する必要があります。 CBCentralManagerpoweredOn州になるのを待たなければならないことに注意してください。そうしないと、何も起こりません。コンソールにいくつかの警告とエラーログが表示されることがあります。

関連する問題