2013-10-15 16 views
6

Obecnie pracuję nad aplikacją na iOS działającą w tle, która wymaga od mnie reklamowania i skanowania urządzenia za pomocą Bluetooth 4.0.Reklamy i skanowanie w technologii iOS Corebluetooth podczas działania aplikacji w tle

Podczas nauki o Corebluetooth.framework, stwierdziłem, że programiści iOS mogą ustawić dwa rodzaje danych reklamowych na urządzeniu peryferyjnym.

  1. lokalna nazwa urządzenia.
  2. identyfikatory UUID usług.

Dowiedziałem się, że urządzenie peryferyjne działa w tle, jednak nazwa lokalna nie będzie reklamowana. Ponadto, identyfikatory UUID usługi zostaną ustawione na obszar przepełnienia, który urządzenie centralne może uzyskać tylko przy użyciu aktywnego skanowania. Jednak aktywne skanowanie może być uruchomione tylko na pierwszym planie.

W tym momencie mam pytanie.

Jeśli zarówno urządzenie centralne, jak i urządzenia peryferyjne działają w tle, czy centralne urządzenie może uzyskać identyfikatory UU usługi, które są ustawione w obszarze przelewu przez urządzenie peryferyjne? To wtedy, gdy zarówno aplikacje na iOS działają w tle, czy możliwe jest stworzenie aplikacji, którą każda aplikacja reklamuje i skanuje się nawzajem w tle?

+0

Po prostu ciekawa, czy uruchomiłeś aktywne skanowanie i reklamę na pierwszym planie, zanim aplikacja przejdzie w stan tła? – user523234

+0

Tak, zrobiłem to. :) –

Odpowiedz

3

działającego w tle obwodowa nie można znaleźć, działającego w tle centralny dokładnie za opisać powodów:

  1. obwodowa nie reklamuje usługi
  2. centralny może skanować tylko filtrowanie usług (będąc jeszcze w tle)

To był problem w iOS 6 i nie widziałem nikogo, kto byłby w stanie to zrobić w iOS 7, albo do tej pory. (Dalsze testy w toku.)

+0

Wielkie dzięki, allprog, jest naprawdę źle ... –

+0

Myślę, że nawet w systemie iOS 7 twoje stwierdzenia wciąż są prawdziwe. Nic w dokumentacji nie sugeruje niczego przeciwnego. – cbowns