Ich habe einige Probleme mit einem CBPeripheriegerät, dessen Dienste aktualisiert wurden: Mein physisches Gerät verfügt über eine Schaltfläche, die die Werbedienste aktualisiert, aber meine App liest immer noch die alten Dienste in der Delegatmethode didDiscoverServices
. Wenn ich das Peripheriegerät in didDiscoverPeripheral
entdecke, kann ich sehen, dass die Dienste dort aktuell sind.iOS CBPeripheriedienste werden nicht aktualisiert
Wenn ich die App erneut ausführen, sind die alten Dienste immer noch da! Es scheint der einzige Weg zu sein, meine App dazu zu bringen, die neuen Dienste zu entdecken, indem ich Bluetooth ein- und ausschalte. Selbst die Deinstallation/Neuinstallation meiner App reicht nicht aus.
Speichert iOS die Dienste für immer? Gibt es eine Möglichkeit, den Cache zurückzusetzen/zu löschen?
Sicher Sache. Das ist, was ich tue, indem ich die Dienste übergebe, nach denen ich suche, und 'didDiscoverPeripheral' hat diese Dienste in' advertisementData [CBAdvertisementDataServiceUUIDsKey] '. Aber wenn ich explizit '[self.peripheral discoverServices: nil];' anrufe, ist dieser Dienst nicht mehr da – marcelosalloum
ok ich habe das nicht versucht, aber ich denke [self.peripheral discoverServices: nil]; wird für ein angeschlossenes Peripheriegerät aktualisiert, nicht für ein entdecktes Peripheriegerät. Ich habe es nicht auf ios getestet, aber Änderungen an Werbedaten können nur in Werbepaketen angezeigt werden. korrigiere mich, wenn ich falsch liege – Neo
Neo, dieser Link ist immer toll, danke fürs Teilen. – Hemang