2014-09-25 10 views
5

Come conoscere l'utilizzo totale dei dati di Internet al giorno?Android come sapere l'utilizzo totale dei dati di Internet al giorno tramite wifi e cellulare

Ad esempio, alla fine della giornata ho utilizzato 800mb, quindi dovrebbe tornare come "l'utilizzo di Internet di 800 MB il 20 maggio 2015".

Quindi, come posso rilevare l'utilizzo totale dei dati?

Dopo tanto google ho potuto trovare solo l'utilizzo dei dati nell'invio e nella ricezione di byte ma non nell'utilizzo totale.

E inoltre desidera dividere l'utilizzo in dati mobili e Wi-Fi.

risposta

5

Dai un'occhiata alla classe TrafficStats. Per questo, ti consigliamo di guardare in particolare a getTotalRxBytes(), getTotalTxBytes(), getMobileRxBytes() e getMobileTxBytes().

Una rapida panoramica:

getTotalRxBytes = total downloaded bytes 
getTotalTxBytes = total uploaded bytes 

getMobileRxBytes = only mobile downloaded bytes 
getMobileTxBytes = only mobile uploaded bytes 

Così, al fine di ottenere solo il numero per il traffico Wi-Fi connessi, si avrebbe solo bisogno di ottenere il totale, e sottrarre il cellulare, come ad esempio:

getTotalRxBytes - getMobileRxBytes = only WiFi downloaded bytes 
getTotalTxBytes - getMobileTxBytes = only WiFi uploaded bytes 

Con il numero di byte, possiamo passare a diverse unità, come megabyte (MB):

getTotalRxBytes/1048576 = total downloaded megabytes 

Per ottenere l'utilizzo per un intervallo, ad esempio un giorno, poiché questi metodi forniscono solo il totale (dal momento dell'avvio), sarà necessario tenere traccia del numero iniziale e quindi sottrarre per ottenere il numero di byte utilizzati durante un intervallo. Così, all'inizio della giornata, come ad esempio 12:00:00, a tenere traccia del consumo totale:

startOfDay = getTotalRxBytes + getTotalTxBytes; 

Quando la fine della giornata arriva, come ad esempio 23:59:59, è possibile quindi sottrarre i due numeri e ottenere l'utilizzo totale per quel giorno:

endOfDay = getTotalRxBytes + getTotalTxBytes; 
usageForDay = endOfDay - startOfDay; 

quindi una sintesi:

  • utilizzare i metodi forniti dalla classe TrafficStats per ottenere il numero totale di utilizzo di internet
  • Sottrarre dati mobili da totale per ottenere solo l'utilizzo della connessione Wi-Fi
  • byte convertire a qualsiasi unità che si desidera utilizzando un rapporto di conversione
  • negozio la quantità di utilizzo, all'inizio di una giornata, e quindi sottrarre la quantità di utilizzo a alla fine della giornata per ottenere la quantità utilizzata per quel giorno
+0

Ok, grazie per la risposta, cercherò –

+0

grazie @ Dave Chen suo utile per me uno –

+0

stai usando mangiatoia di allarme o di servizio intento di catturare dati tutto il giorno anche se l'app non è in primo piano, –

Problemi correlati