Tôi đang làm việc trên một ứng dụng quản lý CoreBluetooth cho iPhone. Để có thể kết nối lại với CBPeripheral đã được phát hiện trước đó, tôi lưu UUID của thiết bị ngoại vi (trong CoreData) và sau đó gọi phương thức retrievePeripherals của CBCentralManager :. My didRetrievePeripherals: gọi lại được gọi và tôi có thể kết nối, vv Cho đến nay rất tốt.Tránh phát hiện các dịch vụ và đặc điểm khi kết nối lại trong CoreBluetooth
Vì tôi đang kết nối lại với thiết bị ngoại vi mà tôi đã biết, tôi muốn tránh khám phá các dịch vụ và đặc điểm của nó. Vì vậy, tôi lưu các UUID của các dịch vụ và đặc điểm (một lần nữa trong CoreData, cùng với UUID của thiết bị ngoại vi) khi tôi kết nối lần đầu tiên.
Nhưng tôi không thể sử dụng các UUID này để đọc hoặc viết các đặc điểm vì đọcValueForCharacteristic: hoặc writeValueForCharacteristic của CBPeripheral: lấy CBCharacteristic làm tham số và không có API để xây dựng cá thể CBCharacteristic.
Có cách nào để tránh khám phá các dịch vụ và đặc điểm trong khi kết nối lại với thiết bị ngoại vi đã biết trước đó không?
Xin chào, khi bạn lưu UUID của các thiết bị đã biết trong CoreData, bạn có thể lưu cấu trúc dữ liệu cho từng thiết bị có chứa các dịch vụ và đặc điểm mà chúng triển khai không? –
Các dịch vụ và đặc điểm của một thiết bị được xác định bởi UUID, mà tôi lưu. Nhưng tôi không thể lưu các thể hiện của CBService và CBCharacteristic trong CoreData vì chúng không có nguồn gốc từ NSManagedObject - ít nhất, tôi không biết làm thế nào tôi có thể làm điều đó. Hay tôi đã hiểu lầm câu hỏi của bạn? – mezulu
Ok Tôi biết hiểu câu hỏi của bạn. Tôi nghĩ bạn sẽ phải làm với discoverCharacteristics: forService: sử dụng UUID ... –