2013-10-17 22 views
7

Tôi đã tra cứu và giải quyết vấn đề này, nhưng dường như không ai có vấn đề này.CoreBluetooth liên tục ngắt kết nối

Tôi có hai iPad. Một là hoạt động như một thiết bị ngoại vi Bluetooth luôn ở phía trước. Vì tôi quan tâm nhiều hơn ở phía trung tâm, tôi đã làm cho nền iPad trung tâm của mình có khả năng cho BLE-central. công việc của tôi là như sau:

  1. ứng dụng Trung ương chạy và bắt đầu quét
  2. ngoại vi quảng cáo dịch vụ (hoặc đến trong phạm vi)
  3. thiết bị Trung ương sẽ kết nối với thiết bị ngoại vi và dừng quét
  4. ngoại vi dừng quảng cáo (hoặc lá phạm vi)
  5. Thiết bị trung tâm ngắt kết nối và bắt đầu quét
  6. Thực hiện các bước 1-5 liền mạch cho dù trung tâm ở tiền cảnh hoặc nền

Khi tôi chạy ứng dụng iPad trung tâm, bước 3 và 5 lặp lại sau mỗi 10 giây, mặc dù dịch vụ đang được quảng cáo toàn bộ thời gian. Điều này xảy ra ở nền trước và nền sau.

On ngắt kết nối, tôi nhận được lỗi này:

Error occurred while disconnecting peripheral: The specified device has disconnected from us. 

Bất kỳ ý tưởng về lý do tại sao nó giữ ngắt kết nối? CoreBluetooth có làm sạch các kết nối nếu không có dữ liệu nào đang được chuyển không? Ngay bây giờ, trung tâm của tôi đang thực hiện đọc một lần các đặc tính ngoại vi. Nó không đăng ký cập nhật, vì các giá trị là tĩnh. Cảm ơn !!

Trả lời

7

Trong trường hợp của tôi, giải pháp là đăng ký đặc tính bất kể giá trị có tĩnh hay không. Dường như đăng ký sẽ giữ kết nối còn sống, trong khi nếu bạn đọc các giá trị một lần, khung công tác sẽ cố gắng tiết kiệm pin và ngắt kết nối, buộc bạn phải kết nối lại trước khi thực hiện đọc hoặc ghi khác.

Các vấn đề liên quan