Mi piacerebbe avere un elenco di dispositivi ble a cui il mio iOS può connettersi, che si aggiorna quando appaiono e scompaiono i dispositivi.Come rilevare con CoreBluetooth quando una periferica scompare?
Per fare questo, ha creato un NSMutableDictionnary* peripheralsAvailable
, e ogni - (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI;
viene chiamato dal CBCentralManager, aggiungo periferica alla Dictionnary peripheralsAvailable (e quindi aggiornare un UITableView). Tutto va bene qui.
Tuttavia non riesco a trovare il modo in cui posso aggiornare il dizionario se una Periferica "scompare". Sembra che io possa aggiungere solo periferiche nel mio dictionnary quando vengono rilevate, ma non posso rimuoverne uno quando lo chiudo, ad esempio.
Potrebbe dirmi se mi manca qualcosa?
Grazie! Sapevo che esisteva DisconnectPeripheral, ma dovevo connettermi per usarlo.Non sapevo di CBCentralManagerScanOptionAllowDuplicatesKey, ed è esattamente ciò di cui avevo bisogno. – darksider
Come farlo se sei in sottofondo? In tal caso, CBCentralManagerScanOptionAllowDuplicatesKey verrà ignorato. – kukudas
@kukudas, la tua periferica BLE potrebbe pubblicizzare con un diverso indirizzo del dispositivo a intervalli regolari in modo che il client la vedrà come una diversa periferica mentre è in background, ma ha l'ID effettivo nel pacchetto pubblicitario, in modo che il client sappia che è davvero la stessa periferica. –