質問

私は99%私がCoreBluetoothを正しく設定するための指示に従ったことを確信しています。私が何をしても、私のiPad Miniでこのアプリを実行すると、Bluetoothはそのオンと言っています。それはデバイスのスキャンであると言っていますが、それは絶対にデバイスを見つけません。私がデバイスのBluetoothメニューに移動すると、発見されている他のデバイスが表示されます。CBCentralManagerを初期化します。centralManagerDidUpdateStateを設定します。それがBluetoothが準備ができているのが確実な場合それはcentralManager.scanForPeripheralsWithServicesを呼び出します。これは正しく起こっています。しかし、私の委任関数centralManager(central: CBCentralManager!, didDiscoverPeripheral peripheral: CBPeripheral!, advertisementData: [NSObject : AnyObject]!, RSSI: NSNumber!)はこれまでに呼ばれることはありません。私のコードはとても簡単です。多分私は何かを欠けているが、私のMacBookがBTLEの装置であり、私のiPad MiniもBTLのデバイスであることを確認することができました。これが私のコードです。

import UIKit
import CoreBluetooth

class ViewController: UIViewController, CBCentralManagerDelegate {

    var centralManager:CBCentralManager!
    var blueToothReady = false

    override func viewDidLoad() {
        super.viewDidLoad()
        startUpCentralManager()
    }

    func startUpCentralManager() {
        println("Initializing central manager")
        centralManager = CBCentralManager(delegate: self, queue: nil)
    }

    func discoverDevices() {
        println("discovering devices")
        centralManager.scanForPeripheralsWithServices(nil, options: nil)
    }

    func centralManager(central: CBCentralManager!, didDiscoverPeripheral peripheral: CBPeripheral!, advertisementData: [NSObject : AnyObject]!, RSSI: NSNumber!) {
        println("Discovered \(peripheral.name)")
    }

    func centralManagerDidUpdateState(central: CBCentralManager!) {
        println("checking state")
        switch (central.state) {
            case .PoweredOff:
            println("CoreBluetooth BLE hardware is powered off")

            case .PoweredOn:
            println("CoreBluetooth BLE hardware is powered on and ready")
            blueToothReady = true;

            case .Resetting:
            println("CoreBluetooth BLE hardware is resetting")

            case .Unauthorized:
            println("CoreBluetooth BLE state is unauthorized")

            case .Unknown:
            println("CoreBluetooth BLE state is unknown");

            case .Unsupported:
            println("CoreBluetooth BLE hardware is unsupported on this platform");

        }
        if blueToothReady {
            discoverDevices()
        }
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

}
.

役に立ちましたか?

解決

私は私のMacBookの広告を手に入れなければなりませんでした。 https://github.com/mttrb/beaconosx を使用してその使用したら、私が書いたとおりに働きましたそれ。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top