2013-10-15 3 views
6

현재 블루투스 4.0을 사용하여 기기를 광고 및 스캔해야하는 백그라운드에서 실행되는 iOS 앱에서 작업하고 있습니다.iOS Corebluetooth 백그라운드에서 앱을 사용하는 동안 광고 및 스캔

Corebluetooth.framework에 대해 배우면서 iOS 개발자가 주변 장치에서 두 가지 종류의 광고 데이터를 설정할 수 있음을 발견했습니다.

  1. 장치의 로컬 이름입니다.
  2. 서비스 UUID.

주변 장치가 백그라운드에서 실행 중임을 알았지 만 로컬 이름이 광고되지 않습니다. 또한 서비스 UUID는 중앙 장치가 능동 스캔을 통해서만 얻을 수있는 오버플로 영역으로 설정됩니다. 그러나 활성 검색은 포 그라운드에서만 실행될 수 있습니다.

이 시점에서 나는 질문이 있습니다.

중앙 및 주변 장치가 백그라운드에서 실행중인 경우 중앙 장치는 주변 장치에 의해 오버플로 영역에 설정된 서비스 UUID를 가져올 수 있습니까? 두 iOS 응용 프로그램이 백그라운드에서 실행될 때, 각 응용 프로그램이 광고하고 백그라운드에서 서로 스캔하는 응용 프로그램을 개발할 수 있습니까?

+0

앱이 백그라운드 상태가되기 전에 적극적으로 스캔하고 광고를 포 그라운드에서 시작 했습니까? – user523234

+0

그래, 내가 그랬어. :) –

답변

3

A는 백그라운드로 주변 정확하게 설명하는 이유에 대한 백그라운드로 중앙으로 찾을 수 없습니다 :

  1. 주변이 중심이 (동안 백그라운드로)에만 서비스 필터링으로 검색 할 수있는 서비스
  2. 을 광고하지 않습니다

이것은 iOS 6에서 문제가되었으며 지금까지도 iOS 7에서 누구나 할 수있는 사람을 보지 못했습니다. (추가 테스트 진행 중)

+0

고마워 allprog, 정말 너무 나쁘다 ... –

+0

심지어 iOS 7에서도 귀하의 진술은 여전히 ​​유효하다고 생각합니다. 문서의 어떤 내용도 그 반대의 어떤 것도 제안하지 않습니다. – cbowns

관련 문제