Ich hätte gerne eine Liste von Geräten, mit denen mein iOS eine Verbindung herstellen kann, die aktualisiert wird, wenn Geräte angezeigt und ausgeblendet werden.Wie erkennt man mit CoreBluetooth, wenn ein Peripheriegerät verschwindet?
Um das zu tun, ich ein NSMutableDictionnary* peripheralsAvailable
erstellt, und jedes Mal - (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI;
wird durch die CBCentralManager genannt, füge ich die peripher zur peripheralsAvailable Dictionnary (und aktualisiert dann ein UITableView). Alles ist in Ordnung hier.
Allerdings kann ich nicht finden, wie ich das Wörterbuch aktualisieren kann, wenn ein Peripheriegerät "verschwindet". Es scheint, dass ich nur Peripheriegeräte in meinem Wörterbuch hinzufügen kann, wenn sie erkannt werden, aber ich kann es nicht entfernen, wenn ich es zum Beispiel herunterfahre.
Können Sie mir sagen, wenn ich etwas verpasse?
Vielen Dank! Ich wusste von didDisconnectPeripheral, aber ich musste verbinden, um es zu verwenden.Ich wusste nichts über CBCentralManagerScanOptionAllowDuplicatesKey, und genau das benötigte ich. – darksider
Wie geht das, wenn Sie im Hintergrund sind? Der CBCentralManagerScanOptionAllowDuplicatesKey wird in diesem Fall ignoriert. – kukudas
@ kukudas, könnte Ihr BLE-Peripheriegerät in regelmäßigen Abständen mit einer anderen Geräteadresse werben, so dass der Client es als ein anderes Peripheriegerät im Hintergrund sieht, aber die tatsächliche ID im Werbepaket hat, so dass der Client weiß, dass es ist wirklich das gleiche periphere. –