Italian Consumi telefonici

AlpVir

Well-Known Member
Licensed User
Longtime User
Ciascuno di noi ha, con ogni probabilità, un piano dati che prevede un certo consumo mensile (o meglio - dannazione - ogni 4 settimane).
Ho già letto della documentazione (tra cui https://www.b4x.com/android/forum/threads/just-out-of-curiosity-monitor-data-usage.46699/ ed il link al post #2 https://developer.android.com/reference/android/net/TrafficStats.html) ma non mi sono chiari alcuni concetti.
Desiderei sapere (da codice ovviamente) quanti GB ho consumato fino ad adesso (a partire dall'inizio del periodo di conteggio che è abbastanza facilmente desumibile) mentre invece, leggendo il documento linkato al post citato, sembrerebbe che sia possibile unicamente conoscere i byte consumati a partire dall'avvio del device.
E questo sommando, se ho ben capito, i valori di "getTotalRxBytes" e "getTotalTxBytes".
Le altri voci non mi sembrano interessanti se si desidera prendere in considerazione unicamente il traffico che si paga (più o meno direttamente) escludendo cioè quello in wi-fi (che in genere è compreso nel traffico del proprio modem-router).
E' corretto tutto ciò ?

B4X:
Consumo=(ts.RunMethod("getTotalRxBytes", Null)+ts.RunMethod("getTotalTxBytes", Null))/1024 ' sono KB

Il confronto con i dati forniti dal gestore telefonico con quelli forniti dal codice sopra citato mi pare di assai difficile attuazione per cui vorrei aver chiaro il significato dei vari "getTotalRxBytes" e "getTotalTxBytes" e compagnia bella.
Grazie per l'attenzione
 

MarcoRome

Expert
Licensed User
Longtime User
Giusto se devi prelevare dati inviati/ricevuto sia in WiFi che in Mobile.
Se ti interessa rilevare i dati quando la WiFi è attiva utilizza getTotalRxBytes ( sembra che funzioni solo se la wifi è attiva ). Quando la WiFi non è attiva utilizza getMobileRxBytes.
Quindi ad esempio se vuoi desumere solo il traffico WiFi, puoi scrivere:

getTotalRxBytes - getMobileRxBytes

Etc.
 

AlpVir

Well-Known Member
Licensed User
Longtime User
Grazie della tua conferma.
Ma se volessi calcolare i dati relativi ad una specifica app ? Dovrei applicare getUidTxBytes(int uid) e/o la corrispondente getUidRxBytes(int uid).
Ma come calcolare UID che, presumo, è specifica di ogni app ?
 

MarcoRome

Expert
Licensed User
Longtime User
Oppure semplicemente con la libreria OS ( VEDI QUI )


B4X:
Dim os As OperatingSystem
Dim myUid As Int = os.myUid
Log(myUid)
 
Last edited:
Top