2013-04-03 15 views
6

Mam pytanie dotyczące uruchamiania aplikacji w tle. Wiem, jak to zrobić, ale Apple nie lubi tego, jak to robię.Tryb tła w tle iOS

Aby dostać się na tę samą stronę, mam aplikację zabezpieczającą i muszę ją monitorować, nawet gdy urządzenie znajduje się w tle. To coś w rodzaju alarmu przeciwwłamaniowego. Używałem trybu dźwięku tła, myśląc, że to będzie w porządku, ponieważ będę odtwarzał dźwięk, gdy zostanie wyzwolony. Nie trzeba dodawać, że Apple nie lubił tego. Więc dodałem ping! Pinguje podczas aktywności, w związku z czym odtwarza dźwięk tła w tle. Po raz kolejny też im się to nie podobało.

Moja aplikacja monitoruje również przyspieszeniomierz (ale nie zawsze, tylko jeśli został wybrany przez użytkownika).

Moje pytanie brzmi: w jaki sposób aplikacje takie jak Skype i inne podobne aplikacje mogą zmienić kolor paska stanu na czerwony i pozostać w tle? (Nawet niektóre aplikacje alarmowe zrobią to, bez odtwarzania jakiegokolwiek dźwięku lub czegokolwiek).

Również nie mogę korzystać z systemu powiadomień, ponieważ nie aktualizuje się wystarczająco szybko, jeśli monitoruję poziom naładowania baterii. Do mojej aplikacji potrzebuję natychmiastowej odpowiedzi.

Mam również przeszukany wokół niestrudzenie dla tej odpowiedzi przed Zamieściłem moje pytanie (odpowiedź znalazłem, nie działa dla mnie ..) :(

bym bardzo wdzięczny żadnego wglądu w to, Thanks in wyprzedzeniem!

(Jeśli trzeba cię więcej informacji, proszę pytać!)

+0

Jak rozwiązać ten problem? –

+0

Przepraszamy za bardzo późną odpowiedź, ale po prostu kłóciliśmy się z jabłkiem, dopóki się nie poddali. Musieliśmy jednak zachować hałas pingów, ale pozwoliliśmy użytkownikowi wejść w ustawienia i wyciszyć je, jeśli chcą. > :) – JoeyMaru

Odpowiedz

5

z tego co mogę powiedzieć z ich dokumentacji, wydaje się, że jedynym sposobem można utrzymywać stałe połączenie tło jest za pomocą jednego z ich siedem background mode keys, które widzę, próbujesz odkąd zarejestrowałeś dźwięk tła. Znam również aplikacje alarmowe, które wykorzystują tę funkcję (np. Cykl uśpienia), a moim założeniem jest także to, że używają także trybu dźwięku tła, biorąc pod uwagę, że pozostałe sześć trybów nie jest zdalnie zbliżone do ich potrzeb.

Myślę, że rozumowanie Apple może polegać na tym, że te aplikacje mogą to robić, ponieważ ich aplikacja jest przeznaczona do używania, gdy użytkownik nie aktywnie korzysta z telefonu (tj. Gdy śpią) i wymaga dźwięku do obudzić użytkownika, natomiast jeśli korzystasz z aplikacji bezpieczeństwa, która chce być aktywna przez cały czas, może zakłócać działanie innych funkcji, z których użytkownik może korzystać, takich jak Skype. Czerwony pasek będzie również utrzymywał się na górze urządzenia przez cały czas, gdy użytkownik go używa, co może pomylić z czymś, co wciąż jest odtwarzane, ponieważ zwykle po pojawieniu się czerwonego paska oznacza to użytkownikowi, że nadal aktywnie używają coś. Ponownie, myślę, że aplikacje alarmowe i inne podobne, które nie korzystają z trwałego dźwięku, mogą sobie z tym poradzić, ponieważ są one przeznaczone do użytku, gdy telefon jest nieaktywny, a więc mają stały czerwony pasek, gdy aplikacja nie jest widoczny jest mniejszy problem.

W niektórych innych przypadkach, takich jak Nike + (omawiane here) i prawdopodobnie krokomierzy, wydaje się, że korzystają z trybu tła lokalizacji, ponieważ często również śledzą miejsce, w którym się znajdujesz i muszą znać odległość. W tej dyskusji, z którą się łączyłem, wygląda na to, że inni byli w stanie uzyskać aktualizacje akcelerometru, rejestrując się w trybie tła, który je zastosował. Czy próbowałeś rejestrować ruchy lokalizacji? Wiem, że może to przyspieszyć żywotność baterii, ale jeśli rzadko sprawdzasz lokalizację, może nie być tak źle? Innym jest to, że nie wydaje mi się, że możesz bezpośrednio odtwarzać dźwięk w trybie tła lokalizacji, ale możesz spróbować wyzwolić powiadomienie dźwiękowe? :) To może być miłe obejście tego, jeśli to zadziała dla twojej aplikacji.

Powody, dla których te aplikacje są w stanie to zrobić, opierają się na tym, jak inne aplikacje działają, a Apple może mieć inne powody, dla których akceptuje je, ale to był mój najlepszy sposób zastanowienia się, dlaczego Twoja aplikacja została odrzucona z powodu używania tych trybów, podczas gdy inni są w stanie to zrobić. Jeśli lokalizacja nie jest tym, czego szukasz, niestety nie jestem pewna, na podstawie tego, jak brzmi Twoja aplikacja, że ​​możesz ją obsługiwać w tle w sposób zgodny z oczekiwaniami.

+0

Witam! Dzięki za odpowiedź! Jedynym problemem związanym z korzystaniem z usług lokalizacyjnych jest to, że użytkownik najprawdopodobniej nie będzie się poruszał podczas korzystania z tej aplikacji, został zaprojektowany tak, aby działał jak alarm kiosku. Jeśli zostanie odłączony lub przeniesiony (gdy użytkownik nie chce, aby urządzenie się dotknęło), zabrzmi. Myślę, że trochę informacji o tym, dlaczego niektóre aplikacje mogą uciec, jest naszą odpowiedzią, wydaje się, że jest to jedna z tych rzeczy: "Musisz przekonać Apple, dlaczego potrzebujesz tego trybu". Dziękujemy za poświęcony czas! Doceniam to! – JoeyMaru

+0

Nie ma problemu! To niefortunne, ale myślę, że to tylko jedna z tych sytuacji, w których muszą zobaczyć, dlaczego działa tak, jak to robi. Czułbym, że w takim przypadku rejestracja dźwięku w tle ma sens, ponieważ oczekuje na monit użytkownika. Nie jestem pewien, czy twórcy Cyklu Uśpienia są łatwymi kontaktami, ale zawsze możesz spróbować zapytać ich, co działa, ponieważ twoja implementacja jest bardzo podobna! (edit: Lokalizacja może również zadziałać na twoją korzyść, jeśli dostaniesz dźwięk do działania, ponieważ chcesz, aby pozostała idealnie stacjonarna, więc będziesz obserwować wszelkie ruchy) –

+1

Dobry pomysł! Pomyślałem, że skoro nie używamy lokalizacji, to odrzucilibyśmy ją, ale jeśli nie możemy ich przekonać, zawsze warto spróbować! – JoeyMaru

0

Możesz używać trybów tła tylko wtedy, gdy aktywnie korzystasz z aktywności, która zatrzymuje aplikację: np. ciągłe odtwarzanie dźwięku jest prawidłowym użyciem klawisza audio tła. Będą wyglądać dość ciężko na to, czy naprawdę potrzebujesz dostępu, o który prosisz, a jeśli nie, to cię odrzucą (jak już się dowiedziałeś), ponieważ usługi tła wyczerpują baterię znacznie bardziej niż inne.

Od the docs:

klucze te powinny być stosowane oszczędnie i tylko przez aplikacje dostarczające wskazanych usług.

Krótka historia: Myślę, że nie masz szczęścia ze swoją propozycją wdrożenia.

+0

Tak, myślę, że musielibyśmy przekonać Apple, dlaczego używamy go tak, jak my (Które próbowaliśmy wcześniej, ale myślę, że spróbujemy ponownie ..) lol. Dziękujemy za poświęcony czas! – JoeyMaru