2014-09-20 8 views
6

So beim Lesen der CBPeripheralDelegate Dokumentation scheint es, dass RSSI und peripheralDidUpdateRSSI:error: mit iOS veraltet waren 8.iOS 8 CoreBluetooth veraltet RSSI Methoden

ich bemerkt, dass meine Signalstärke-Anzeige war nicht mehr aktualisiert, so habe ich einige der Forschung und eine neue Methode ([CBPeripheralDelegate peripheral:didReadRSSI:error:]) gefunden, die angeblich nach Aufruf der Methode readRSSI asynchron zurückgerufen wird. Leider scheint diese Methode auch nicht zurückgerufen zu werden, obwohl ich die Elternklasse als CBPeripheral-Delegat festgelegt habe.

Hat jemand anderes Probleme mit den iOS 8 CoreBluetooth Updates?

Antwort

9

Es gibt ein bekanntes Problem, das zu diesem Thema in den Apple Developer Foren gepostet wurde, zu denen ich auch ein offenes Radar habe.

Das Problem scheint zu sein, dass die neue Rückrufmethode peripheral:didReadRSSI:error: nie auf iOS 8 speziell nach der ersten Verbindung zu einem Peripheriegerät aufgerufen wird. Die einzige Lösung, die ich gefunden habe, ist das Zurücksetzen von Bluetooth auf Ihrem Telefon, indem Sie es ein-/ausschalten oder das Telefon neu starten.

Here is the link to open radar I filed.

UPDATE:

getestet Nur mein Beispiel, das dieses Problems mit der aktuellen 8.2-Release wurde die Anzeige, und ich bin nicht mehr sehen, keine Probleme mit dem neuen iOS 8 Delegatmethode nie aufgerufen wird. Ich markiere meinen Radar als gelöst nach 8.2 Release.

+1

Das gleiche Problem unter iOS 8.1.3. –

+0

Ich habe jede Beta-Version getestet und die nächste kommende Version scheint dieses Problem gelöst zu haben. –

-1

Es funktioniert wieder in iOS 8.0.2!

Verwendung [myPeripheral readRSSI];

1

Es funktioniert iOS 8.0.2, aber es ist jetzt gedrosselt. Ich sende alle 200ms eine readRSSI und bekomme nur einmal pro Sekunde eine Antwort. Es funktionierte gut mit iOS 7.1.

5

In iOS 8.1.1 wird peripheral:didReadRSSI:error: nur für Peripheriegeräte angerufen, mit denen Sie verbunden sind. Wenn Sie nur die Peripheriegeräte mit einem Scan entdeckt haben und dann readRSSI auf ihnen aufgerufen haben, wird der Callback nicht aufgerufen.

Versuchen Sie zuerst, eine Verbindung zum Peripheriegerät herzustellen (über CBCentralManagerconnectPeripheral:options:), und rufen Sie dann readRSSI.

+2

Dies liefert keine Antwort auf die Frage. Um einen Autor zu kritisieren oder um Klärung zu bitten, hinterlasse einen Kommentar unter seinem Beitrag - du kannst deine eigenen Beiträge jederzeit kommentieren, und sobald du genügend [Reputation] (http://stackoverflow.com/help/whats-reputation) hast, wirst du das tun in der Lage sein [jeden Beitrag kommentieren] (http://stackoverflow.com/help/privileges/comment). –

+4

Tatsächlich bietet es eine Antwort auf die Frage. Seine Frage bezog sich auf "Peripheriegeräte: didReadRSSI: error:" wurde nicht angerufen und er fragte, ob jemand anderes Probleme damit habe. Ich hatte Probleme damit und ich fand die Lösung, um CoreBluetooth diese Delegate-Methode in iOS 8 aufzurufen: Verbindung zum Peripheriegerät. –

+0

Dies wird nur beim ersten Verbindungsaufbau zum Peripheriegerät erfolgreich zurückgegeben und ruft [peripheres readRSSI] auf. Bei nachfolgenden Verbindungen kann die didReadRSSI-Delegatmethode nicht aufgerufen werden. –

Verwandte Themen