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
Ok, grazie per la risposta, cercherò –
grazie @ Dave Chen suo utile per me uno –
stai usando mangiatoia di allarme o di servizio intento di catturare dati tutto il giorno anche se l'app non è in primo piano, –