2013-10-03 14 views
12

iOS 7 ha introdotto una nuova configurazione utente per disabilitare i dati cellulari per app specifiche. Può essere configurato in "Impostazioni" -> "Cellulare" e quindi scorrendo verso il basso.Esiste un'API di utilizzo dati cellulare in iOS 7?

settings screenshot

Troverete un interruttore per ogni applicazione installata e può vedere quanto dati cellulare si è consumato.

Come posso verificare a livello di codice se l'interruttore è attivato per la mia app? C'è una API per questo? Posso determinare quanti dati la mia app ha utilizzato su cellulare?

Non sto chiedendo di ottenere i valori per tutte le app. Sono interessato solo al mio utilizzo delle app.

+0

ho trovato un thread sul forum di sviluppatori Apple che cita questo. Ma sembra che non ci sia API. Vedi qui https://devforums.apple.com/message/855240 – Klaas

+0

Sto lavorando su un'app per iPad, ma nessuna delle mie app nel mio iPad mostra "Uso dati cellulare", il mio cliente desidera mostrare la nostra App in base a tale opzione. Come posso dimostrarlo? Sto usando iPad3 con una sim valida. –

+0

@palchuri Sei sicuro che la tua app abbia generato traffico sulla rete cellulare? – Klaas

risposta

4

Non ci sono API per rilevare il consumo del download o se il cellulare è attivo per la tua app.

Se l'app tenta di connettersi a un sito Web, ma il cellulare è disattivato, iOS potrebbe chiedere all'utente di riattivare il cellulare. Non sono esattamente sicuro di come funzioni, ma probabilmente è simile all'avviso di "nessuna connessione di rete" di iOS 6 che potrebbe apparire se non ci sono connessioni ma un'app tenta di accedere a Internet.

È possibile verificare se la connessione Internet corrente è su WiFi o Cellulare, ma se Cellulare è disabilitato verrà semplicemente detto che non vi è alcuna connessione di rete.

Maggiori dettagli qui: iOS Detect 3G or WiFi

1

Non è possibile controllare se l'interruttore di dati cellulare sia acceso.

  • La cosa più vicina è che si può controllare se un determinato host è raggiungibile attraverso una connessione cellulare utilizzando il flag SCNetworkReachability kSCNetworkReachabilityFlagsIsWWAN.
  • Inoltre, è possibile abilitare/disabilitare i dati della cella per connessioni specifiche utilizzando la proprietà NSURLRequest allowsCellularAccess.

Riferimento: https://developer.apple.com/library/ios/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/Platform-SpecificNetworkingTechnologies/Platform-SpecificNetworkingTechnologies.html

Questa risposta suggerisce come l'uso di dati può essere misurata a livello di sistema: iPhone Data Usage Tracking/Monitoring

+0

A partire da iOS9 questo non è più vero. Vedi https://stackoverflow.com/a/48160099/2941876 –