Tôi muốn có danh sách các thiết bị ble mà iOS của tôi có thể kết nối, làm mới khi thiết bị ble xuất hiện và biến mất.Làm thế nào để phát hiện với CoreBluetooth khi một thiết bị ngoại vi biến mất?
Để làm điều đó, tôi đã tạo một NSMutableDictionnary* peripheralsAvailable
và mọi lúc - (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI;
được gọi bởi CBCentralManager, tôi thêm thiết bị ngoại vi vào thiết bị ngoại viTừ điển có sẵn (và sau đó cập nhật UITableView). Tất cả đều ổn ở đây.
Tuy nhiên tôi không thể tìm thấy cách tôi có thể cập nhật từ điển nếu một ngoại vi "biến mất". Dường như tôi chỉ có thể thêm các thiết bị ngoại vi trong từ điển của mình khi chúng được phát hiện, nhưng tôi không thể loại bỏ một thiết bị khi tôi tắt nó.
Bạn có thể cho tôi biết nếu tôi thiếu gì đó không?
Cảm ơn bạn! Tôi biết về didDisconnectPeripheral, nhưng tôi đã phải kết nối để sử dụng nó.Tôi không biết về CBCentralManagerScanOptionAllowDuplicatesKey, và đó là chính xác những gì tôi cần. – darksider
Làm thế nào để làm điều đó nếu bạn ở chế độ nền? Khóa CBCentralManagerScanOptionAllowDuplicates sẽ bị bỏ qua trong trường hợp đó. – kukudas
@kukudas, thiết bị ngoại vi BLE của bạn có thể quảng cáo với địa chỉ thiết bị khác nhau theo khoảng thời gian đều đặn để khách hàng sẽ xem nó như một thiết bị ngoại vi khác trong khi ở chế độ nền, nhưng có ID thực trong gói quảng cáo, để khách hàng biết rằng thực sự là cùng một ngoại vi. –