5

Ich schreibe eine App mit CoreBluetooth in iOS8, erkennt und verbindet sich mit anderen Handys mit der App. Ich versuche herauszufinden, die beste Möglichkeit, um eine Verbindung zu erstellen, während beide Apps sind Hintergrund, aber hatten Schwierigkeiten in dem Szenario, in dem beide Telefone im Hintergrund sind + gesperrt. Ich habe die Vorschläge dieses Beitrags folgt:iOS CoreBluetooth Betrieb als Peripheriegerät und gleichzeitig im Hintergrund

How to detect nearby devices with Bluetooth LE in iOS 7.1 both in background and foreground?

Ich habe keine Verbindung herzustellen in der Lage, wenn beide Telefone backgrounded sind + gesperrt, aber ich habe in der Lage, eine Verbindung zu erhalten, wo die periphere und central sind backrounded + locked und ich entsperre dann die central (central noch im hintergrund). Wenn ich das Peripheriegerät entsperre, geschieht nichts. Es funktioniert auch, wenn sie im Hintergrund, aber nicht gesperrt sind.

Also, um eine Verbindung zu ermöglichen, wenn ich die "Peripherie" entsperren, beschloss ich, eine zentrale und periphere auf beiden Telefonen zu erstellen, um gleichzeitig zu scannen und zu werben. Was auch immer die andere zuerst entdeckt, wird dann aufhören zu scannen/Werbung und verbinden. Ich habe laufen in Probleme mit dieser Methode, die in den folgenden zwei Fragen detailliert sind:

Peripheral and central at the same time on iOS

iOS CoreBluetooth Simultaneous Peripheral and Central Managers

Grundsätzlich denke ich, dass, wenn meine beiden Geräte gleichzeitig versuchen, miteinander zu verbinden, Sie werden beim Verbindungsaufbau aufgelegt, und didConnectPeripheral wird niemals von ihnen aufgerufen (das letzte, was beide anzeigen, ist eine Nachricht, dass sie versuchen, eine Verbindung herzustellen). Es hat gelegentlich gearbeitet, aber ich bin auch ein wenig verwirrt, warum es einen probabilistischen Charakter für die Verbindung gibt. Hat jemand irgendwelche Vorschläge, wie man das Problem angeht? Wenn es eine bessere Möglichkeit gibt, eine Verbindung herzustellen, wenn beide Apps im Hintergrund liegen und gesperrt sind, lass es mich wissen, denn das war mein ursprüngliches Problem.

Danke!

+0

Hallo Steven, hast du Glück gehabt, zentrale und periphere Arbeit im Hintergrundmodus zu machen? –

Antwort

0

Deklarieren Sie bluetooth-central und bluetooth-peripheralbackground modes in Ihrer Info.plist, um sowohl in der zentralen als auch in der peripheren Rolle im Hintergrund zu agieren.