2016-03-26 7 views
0

In meiner iOS-App mit Core-Bluetooth, ich versuche, für alle Peripheriegeräte zu scannen. Vorher habe ich nach einem bestimmten Dienst gesucht. Ich verwende den folgenden Code.scanForPeripheralsWithServices mit Null-Argument nicht entdecken

centralManager!.scanForPeripheralsWithServices(nil, options: nil) 
    //centralManager!.scanForPeripheralsWithServices([BLEUUIDS.Status.Service], options: nil) 

Was seltsam ist, wenn die erste Zeile mit null für die Dienste arg verwendet wird, wird didDiscoverPeripheral nie genannt. Wenn ich diese Zeile kommentiere und die darunter liegende Zeile auskommentiere, wird didDiscoverPeripheral aufgerufen. Irgendwelche Vorschläge werden geschätzt.

+0

Scannen Sie im Vordergrund unseres Hintergrund? . Probieren Sie die hellblaue App aus der App aus, um herauszufinden, ob Ihr Peripheriegerät erkannt werden kann. – Paulw11

+0

Danke fürs schreiben. Ich scanne im Vordergrund. Hellblau kann das Periphere entdecken, aber ich bin total verloren, warum das Passieren von Null mich daran hindern würde, es zu entdecken. –

+0

Dann können Sie mehr Code zeigen? Wo initiierst du das Scannen? – Paulw11

Antwort

0

Danke für die Kommentierung von Paulw11. Ich fand das Problem, dass ich meine Zentrale initiierte und antrieb, als das erste, was die App tat. (wenn Sie unten sehen können). Ich habe die Initialisierung auf didFinishLaunchingWithOptions verschoben und kann ohne Filter auf Dienste scannen. Ich bin mir ziemlich sicher, dass dies ein Apple Bug ist und plane, ein Radar (eines von vielen) zu installieren, sobald ich etwas Zeit habe.

var centralManager = BLECentralManager.sharedInstance 

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {   
    return true 
} 

}

(Nebenbei, ich habe tatsächlich einige Arbeit auf dem Lightblue App. Ich bin froh, Leute zu sehen, verwenden es)

Verwandte Themen