2013-04-03 40 views
6

Ho una domanda sull'esecuzione di un'app in background. So come farlo, ma a Apple non piace il modo in cui lo sto facendo.Modalità sfondo iOS

Per ottenere sulla stessa pagina, ho un'app di sicurezza e ho bisogno di monitorare il dispositivo anche quando è in background. È un po 'come un allarme antifurto. Stavo usando la modalità audio in background, pensando che sarebbe andato bene perché suonerei un suono quando viene attivato. Inutile dire che a Apple non piaceva. Quindi ho aggiunto un ping! Fa ping mentre è attivo, quindi per riprodurre l'audio di sottofondo mentre è in background. Ancora una volta, anche a loro non piaceva.

La mia app monitora anche l'accelerometro (ma non sempre, solo quando viene scelto dall'utente).

La mia domanda è: in che modo le app come Skype e altre app simili in grado di trasformare la barra di stato in rosso e rimanere sullo sfondo? (Anche alcune app di allarme lo faranno, senza riprodurre alcun audio o altro).

Inoltre, non posso utilizzare il sistema di notifica perché non si aggiorna abbastanza velocemente se sto monitorando il livello della batteria. Per la mia app ho bisogno di una risposta immediata.

ho anche cercato intorno instancabilmente per questa risposta prima ho postato la mia domanda (le risposte che ho trovato, non funzionano per me ..) :(

Io apprezzo molto avere una visione chiara su questo, grazie a anticipo!

(Se avete bisogno di più informazioni, si prega di chiedere!)

+0

Come hai risolto questo problema? –

+0

Ci scusiamo per la risposta molto tarda, ma abbiamo discusso con Apple fino a quando non hanno ceduto. Tuttavia, abbiamo dovuto mantenere il rumore del ping, ma abbiamo permesso all'utente di entrare nelle impostazioni e silenziarlo se volevano. > :) – JoeyMaru

risposta

5

da quello che posso dire da loro documentazione, sembra che l'unico modo per mantenere una connessione di fondo permanente è quello di utilizzare uno dei loro sette background mode keys, che vedo che provi da quando ti sei registrato per l'audio di sottofondo. Conosco anche alcune app di allarme che utilizzano questa funzione (ad esempio Sleep Cycle) e suppongo che stiano utilizzando anche la modalità audio in background, considerando che le altre sei modalità non sono lontanamente vicine a ciò per cui sarebbero necessarie.

Penso che il ragionamento di Apple potrebbe essere che queste applicazioni sono autorizzate a farlo, perché la loro app è progettata per essere utilizzata quando l'utente non sta usando il telefono attivamente (cioè quando stanno dormendo), e richiede l'audio per sveglia l'utente, mentre se stai utilizzando un'app di sicurezza che vuole essere attiva in qualsiasi momento, potrebbe interferire con altre funzionalità che l'utente può utilizzare come Skype. La barra rossa rimarrà anche nella parte superiore del dispositivo in ogni momento in cui l'utente la sta usando, cosa che potrebbero scambiare per qualcosa che sta ancora suonando poiché di solito quando appare una barra rossa significa all'utente che sta ancora usando attivamente qualcosa. Ancora una volta, penso che le app di allarme sveglia e altre che non usano l'audio persistente siano in grado di farla franca poiché sono progettate per l'uso quando il telefono è inattivo, quindi avendo la barra rossa persistente quando l'app non è visibile è meno di un problema.

In alcuni altri casi, come Nike + (discusso di here) e probabilmente pedometri, sembrano utilizzare la modalità di background in background, poiché spesso tracciano anche dove sei andato e hanno bisogno di sapere la distanza. In quella discussione a cui mi sono collegato, sembra che gli altri siano riusciti ad ottenere gli aggiornamenti dell'accelerometro registrandosi per una modalità di background che si applicava a loro. Hai provato a registrarti per i movimenti di posizione? Uno svantaggio che posso vedere è che potrebbe esaurire la durata della batteria più velocemente, ma se si controlla la posizione raramente potrebbe non essere troppo male? Un altro è che non penso che tu possa riprodurre direttamente l'audio quando sei in modalità background, ma potresti provare ad attivare una notifica sonora? :) Potrebbe trattarsi di una soluzione alternativa se funziona per la tua app.

Ancora una volta, il ragionamento che ho per il motivo per cui queste app sono in grado di farlo è basato su come ho visto altre app operative e Apple potrebbe avere motivi diversi per le ragioni per accettarle, ma quello era il mio modo migliore di pensare perché la tua app è stata rifiutata per l'utilizzo di tali modalità mentre gli altri sono in grado di farlo. Se la posizione non è quella che stai cercando, sfortunatamente non sono sicuro di come apparirà la tua app, in modo che tu possa operare ininterrottamente in background nel modo in cui ti aspetti.

+0

Ciao! Grazie per la tua risposta! L'unico problema con l'utilizzo dei servizi di localizzazione è che l'utente non si muoverà più facilmente durante l'utilizzo di questa app, è progettato per funzionare come un allarme kiosk. Se scollegato o spostato (quando l'utente non desidera che il dispositivo venga toccato), suonerà. Penso che il bit di informazioni in cui hai discusso il motivo per cui alcune applicazioni possano farla franca è la nostra risposta, sembra che sia una di quelle, "Devi convincere Apple perché hai bisogno di questa modalità". Grazie per il vostro tempo! Lo apprezzo! – JoeyMaru

+0

Nessun problema! È sfortunato, ma penso che sia solo una di quelle situazioni in cui devono capire perché funziona così. Mi sentirei in quel caso che la registrazione per l'audio di sottofondo ha senso poiché è in attesa del prompt di un utente. Non sono sicuro che gli sviluppatori di Sleep Cycle siano facili da contattare, ma puoi sempre provare a chiedere loro cosa funziona poiché la tua implementazione è molto simile! (modifica: La posizione potrebbe funzionare anche a tuo favore se fai in modo che il suono funzioni, dal momento che vuoi che rimanga perfettamente fermo, quindi starai attento a movimenti di qualsiasi tipo) –

+1

Buona idea! Pensavo che dal momento in cui non stavamo usando la posizione, l'avrebbero respinta, ma se non riusciamo a convincerli, vale sempre la pena sparare! – JoeyMaru

0

È possibile utilizzare le modalità di sfondo solo se si utilizza attivamente l'attività che mantiene attiva l'applicazione: ad es. continuamente riprodurre audio è un uso valido della chiave di sottofondo audio. Saranno abbastanza seri per sapere se hai davvero bisogno dell'accesso richiesto e, in caso contrario, ti rifiuteranno (come hai già scoperto), poiché i servizi in background consumano la batteria molto più di altri.

Da the docs:

Questi tasti devono essere usati con parsimonia e solo le app che forniscono i servizi indicati.

Breve storia: Penso che tu non abbia fortuna con la tua proposta di implementazione.

+0

Sì, penso che dovremmo convincere Apple perché la stiamo usando come siamo (cosa che abbiamo provato prima, ma credo che ci riproverò ..) lol. Grazie per il vostro tempo! – JoeyMaru