2013-10-15 20 views
6

Tôi hiện đang làm việc trên một ứng dụng iOS đang chạy trong nền yêu cầu tôi quảng cáo và quét thiết bị bằng Bluetooth 4.0.Quảng cáo và quét lõi tứ iOS trong khi ứng dụng ở chế độ nền

Trong khi tìm hiểu về Corebluetooth.framework, tôi thấy rằng các nhà phát triển iOS có thể đặt hai loại dữ liệu quảng cáo trên thiết bị ngoại vi.

  1. tên địa phương của thiết bị.
  2. UUID dịch vụ.

Tôi đã học được nếu thiết bị ngoại vi đang chạy trong nền, tuy nhiên, tên địa phương sẽ không được quảng cáo. Ngoài ra, UUID dịch vụ sẽ được đặt thành vùng tràn mà thiết bị trung tâm chỉ có thể nhận được bằng cách sử dụng quét hoạt động. Tuy nhiên, chức năng quét hoạt động chỉ có thể chạy ở nền trước.

Tại thời điểm này tôi có một câu hỏi.

Nếu cả thiết bị trung tâm và thiết bị ngoại vi đang chạy ẩn, thiết bị trung tâm có thể nhận UUID dịch vụ được thiết lập trên vùng tràn bởi thiết bị ngoại vi không? Đó là khi cả hai ứng dụng iOS đang chạy trong nền, có thể phát triển một ứng dụng mà mỗi ứng dụng đang quảng cáo và quét lẫn nhau trong nền không?

+0

Chỉ cần tò mò, bạn có bắt đầu quét và quảng cáo hoạt động ở nền trước trước khi ứng dụng chuyển sang trạng thái nền không? – user523234

+0

Vâng tôi đã làm như vậy. :) –

Trả lời

3

Một backgrounded ngoại vi không thể được tìm thấy bởi một trung tâm backgrounded chính xác vì những lý do mà bạn mô tả:

  1. thiết bị ngoại vi không quảng cáo các dịch vụ
  2. trung ương có thể quét chỉ với bộ lọc dịch vụ (trong khi backgrounded)

Điều này đã xảy ra trong iOS 6 và tôi chưa thấy bất kỳ ai có thể làm điều đó trong iOS 7 cho đến bây giờ. (Thử nghiệm tiếp theo đang tiến hành.)

+0

Cảm ơn rất nhiều allprog, Nó thực sự quá xấu ... –

+0

Tôi nghĩ rằng ngay cả trên iOS 7 báo cáo của bạn vẫn giữ đúng sự thật. Không có gì trong tài liệu cho thấy bất cứ điều gì ngược lại. – cbowns

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