C'è un modo per dire se è in uso la vostra applicazione mentre l'utente è al telefono?
-
20-09-2019 - |
Domanda
Ci sono alcune parti del mio app che sarebbe meglio per evidenziare all'utente se sono al telefono.
C'è una chiamata per controllare per vedere se siamo al telefono? Purtroppo, "chiamata" è una parola orribile per verificare la presenza di documenti API per ovvi motivi.
Soluzione
Il quadro CoreTelephony può dire.
Il metodo CTCallCenter currentCalls restituisce una serie di chiamate cellulari attualmente attivi.
Altri suggerimenti
Date un'occhiata alla differenza di dimensioni tra [[UIScreen mainScreen] bounds]
e [[UIScreen mainScreen] applicationFrame]
. Se il diff è di 20 pixel e non si nasconde la barra di stato, quindi gli utenti probabilmente non è in corso una chiamata. Se la differenza è di 40 pixel, gli utenti è probabilmente in una chiamata, dal momento che la barra di stato incandescente verde che compare durante le chiamate è circa due volte più grande come la normale barra di stato.
Non ho fatto prima, così YMMV. Buona fortuna e fatemi sapere se funziona!
L'applicazione non viene chiuso quando arriva una chiamata, transita allo stato inattivo. Il seguente metodo dovrebbe essere chiamato sul UIApplicationDelegate :
- (void)applicationWillResignActive:(UIApplication *)application
Questo metodo è anche chiamato in altri casi, ad esempio quando l'iPhone è bloccato, e non avete modo di determinare se si trattasse di una chiamata in arrivo che lo ha causato.
Quando l'iPhone riceve una chiamata, la chiusura dell'applicazione. È possibile registrare un callback per gestire questo evento con garbo, vedi:
Dopo la chiamata è terminata, l'applicazione si ri-lancio.
Le applicazioni che appaiono per preservare il vostro stato durante una chiamata sono solo scritti bene:)
Arggh! Ho appena letto la tua domanda attuale.
Non riesco a trovare, né so di nessun API per accedere all'applicazione telefono. Il mio unico consiglio sarebbe che il telefono è un'applicazione come qualsiasi altro -. E può pubblicare le informazioni attraverso il tunnel http tutte le applicazioni forniscono
Mi chiedo se si può solo avere un "io sono al telefono" tasto l'utente può premere per ottenere gli stessi risultati?