iOS 8 CoreBluetooth veraltet RSSI-Methoden
Also aus der Lektüre der CBPeripheralDelegate
Dokumentation, scheint es, dass RSSI
und peripheralDidUpdateRSSI:error:
veraltet markiert wurden mit iOS 8.
Bemerkte ich, dass meine Signalstärke-Anzeige wurde nicht mehr aktualisiert, also Tat ich etwas Forschung und fand eine neue Methode ( [CBPeripheralDelegate peripheral:didReadRSSI:error:]
), die angeblich zurückgerufen werden asynchron nach dem Aufruf der readRSSI
Methode. Leider funktioniert diese Methode nicht scheinen, um Holen Sie rief zurück, entweder, obwohl ich legen Sie die übergeordnete Klasse als CBPeripheral delegieren.
Hat jemand hatte Probleme mit dem iOS 8 CoreBluetooth-updates?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist ein bekanntes Problem, hat gewesen geschrieben über das auf der Apple-Developer-Foren, an denen ich eine open-radar sowie.
Das Problem scheint zu sein, dass die neue callback-Methode
peripheral:didReadRSSI:error:
nie aufgerufen auf iOS 8, insbesondere nach der ersten Verbindung zu einem Peripheriegerät. Die einzige Lösung die ich gefunden habe, ist das zurücksetzen des bluetooth auf Ihrem Telefon, indem Sie Sie ein - /ausschalten oder Neustarten des Telefons.Hier ist der link zum öffnen des radar-I eingereicht.
UPDATE:
Gerade getestet mein Beispiel war, dass die Anzeige dieses Problem mit dem aktuellen release 8.2, und ich bin nicht mehr Probleme mit dem neuen iOS 8 delegate-Methode wird nie aufgerufen. Ich bin der Markierung meinem radar als gelöst pro die 8.2 Version.
In iOS 8.1.1,
peripheral:didReadRSSI:error:
wird nur aufgerufen werden, für Peripheriegeräte, die Sie angeschlossen sind. Wenn Sie habe lediglich entdeckt, die Peripheriegeräte mit einem scan und rief dannreadRSSI
auf Sie, wird der callback nicht aufgerufen werden.Versuchen Sie, die Verbindung zu den peripheren erste (über
CBCentralManager
'sconnectPeripheral:options:
), und dann ruftreadRSSI
.peripheral:didReadRSSI:error:
nicht immer genannt, und er fragte, ob jemand anderes hatte Probleme mit ihm. Ich hatte Probleme mit ihm und ich, die Lösung gefunden zu machen CoreBluetooth nennen, die delegate-Methode in iOS 8: Anbindung der Peripherie.Es funktioniert iOS 8.0.2, aber es ist jetzt gedrosselt. Ich sende eine readRSSI alle 200ms und eine Antwort bekommen nur einmal in der Sekunde. Es funktionierte mit iOS 7.1.
Es wieder funktioniert unter iOS 8.0.2!
verwenden [myPeripheral readRSSI];