CBCentralManager ändert sich für iOS 7

8

Ich versuche Apples BTLE-Transfer "Beispielprojekt zu verwenden verstehen CoreBluetooth-Programmierung. Die App läuft einwandfrei, wenn ich ein iOS 6-Gerät als Central verwende, aber wenn ich dieselbe App mit dem iOS 7-Gerät als Central verwende, funktioniert es nicht. Das Peripheriegerät hört auf, nach zwei Paketen zu senden, und die Zentrale empfängt keines von beiden.

Der einzige Hinweis ist diese Warnung, die ich nur bei iOS 7 bekomme:

%Vor%

Kann mir jemand sagen, was geändert werden muss, damit diese App mit iOS 7 kompatibel ist?

EDIT: Wenn beide Geräte iOS7 sind, gibt es keine Probleme. Dies funktioniert nur, wenn eine iOS7-Zentrale mit einem iOS6-Peripheriegerät kommuniziert.

    
Drew C 23.09.2013, 22:56
quelle

2 Antworten

8

Okay, ich habe es einfach auf einem iOS 7-Center für iOS 6-Peripheriegeräte ausgeführt. Wenn Sie diese Warnung zum Deaktivieren der doppelten Filterung deaktivieren möchten, führen Sie sie einfach in einem anderen Thread aus. Tun Sie etwas wie folgt:

%Vor%

Jetzt können Sie mit aktivierten Duplikaten scannen. Sie müssen jedoch den TextView-Setter auf dem Hauptthread aufrufen, um den Text ohne Absturz festzulegen:

%Vor%

Übrigens möchtest du wahrscheinlich auch die neue iOS 7-Delegateninitialisierung übernehmen:

%Vor%

(Überprüfen Sie einfach die iOS-Version und rufen Sie die entsprechende Initialisierungsmethode auf)

    
Tommy Devoy 24.09.2013 17:18
quelle
5

In scanForPeripheralsWithServices:options: , wenn Sie CBCentralManagerScanOptionAllowDuplicatesKey:@YES festgelegt haben, ändern Sie es in CBCentralManagerScanOptionAllowDuplicatesKey:@NO bedeutet, dass der Scan ohne doppelte Filterung ausgeführt werden sollte.

Für mich funktioniert es auch auf iOS7.

    
manojdeshmane99 26.02.2014 07:12
quelle