Come get programmaticamente il limite di utilizzo dei dati impostato dall'utente sulla configuration di Android OS?

L'utente può definire alla schermata Utilizzo dati un limite e / o un limite di avviso per l'utilizzo dei dati mobili. Quindi, come posso get queste informazioni per codice?

Schermata di configuration di utilizzo dei dati del sistema operativo nativo.

  • Come posso impostare lo background della mia forma in xml?
  • Come può un AsyncTask ancora utilizzare un'attività se l'utente ha già navigato da esso?
  • Widget Android - Fare clic su azione, aggiornare in less di 30 minuti, istanze separate
  • Come posso implementare il programma di referral per gli utenti di applicazioni nel mercato Android?
  • Le perdite di memory con il carattere personalizzato per il set di caratteri personalizzati
  • Dove posso trovare styles.xml e themes.xml nella sorgente Android?
  • Schermata di configurazione del sistema OS

    Voglio il valore limite e il valore di avviso.

    Ho già provato questo ma non lavoro e restituisco sempre a NULL entrambi:

    final Long recommendedBytes = DownloadManager.getRecommendedMaxBytesOverMobile( this.context ); final Long maximumBytes = DownloadManager.getMaxBytesOverMobile( this.context ); // recommendedBytes and maximumBytes are NULL 

    E la class TrafficStats ha solo i dati non trasferiti ai limiti.

  • Carica un file di text semplice in Android Studio
  • il metodo getLastKnownLocation restituisce sempre null
  • Android: Dove dovrebbe essere definito / registrato un OnSharedPreferenceChangeListener
  • Test con SugarORM e Robolectric
  • Android: onDestroy () o metodo analogo nella class Application
  • Come sovrapporre la visualizzazione di text nella visualizzazione delle immagini in XML?
  • 2 Solutions collect form web for “Come get programmaticamente il limite di utilizzo dei dati impostato dall'utente sulla configuration di Android OS?”

    Dopo giorni di ricerca e ricerca su questo problema non ho trovato una risposta per questo. Sommo allarremo each tentativo che ho fatto.

    1. Download Manager

    Con questa class è ansible avviare il download su qualsiasi stato di networking o periferica e gestirà tutti gli stati, ad esempio la perdita di networking, il riavvio del dispositivo, ecc …

    Ci sono due methods chiamati getMaxBytesOverMobile e getRecommendedMaxBytesOverMobile , sono stati un bel candidato per risolvere questo problema alla prima volta. Ma dopo i test di codice e la ricerca di implementazione di Download Manager avrei scoperto che non esiste alcun modo per get i valori tossici da DownloadManager.

    Ragionare

    I methods Thoose chiamano Settings.Secure.getLong con loro le rispettive etichette Settings.Secure.DOWNLOAD_MAX_BYTES_OVER_MOBILE e Settings.Secure.DOWNLOAD_RECOMMENDED_MAX_BYTES_OVER_MOBILE al turn rende una chiamata a una mappa slanciata pigra all'interno di una class interna denominata NameValueCache .

    Ok, finora, ma nessuna delle classi interne o l'implementazione delle Settings è in uso DOWNLOAD_MAX_BYTES_OVER_MOBILE o DOWNLOAD_RECOMMENDED_MAX_BYTES_OVER_MOBILE all'interno.

    Ho considerato che la mappa pigra è stata popolata da una terza entity framework;, cosa succede in realtà, quindi ho trovato la class interiore delle Settings NameValueTable che gestiscono i nuovi valori nella mappa pigra. Il putString è una chiamata di metodo protected da Settings.Secure e Settings.System classi interne (chiamate Secure e System ).

    Quindi posso concludere che se l'implementazione del sistema operativo non metta i valori Throos String non riesco a farli.

    2. TrafficStats

    Solo un rapido sguardo sul riferimento ufficiale potrò notare che non mi aiuterà perché questa class fornisce solo la quantità di byte e pacchetti che sono stati trafficati dall'ultimo avvio del dispositivo.

    http://developer.android.com/reference/android/net/TrafficStats.html

    3. NetworkPolicyManager e NetworkPolicy

    Come @bina pubblicato qui, entrambe le classi sono nascoste e non possono essere utilizzate da applicazioni normali, ad esempio che verranno pubblicate su Google Play.

    https://stackoverflow.com/a/24445424/575643

    4. ConnettivitàManager

    In breve, è sufficiente get il NetworkInfo che non fornisce molte informazioni sulle preferenze degli utenti (davvero nessuno!). Basta fornire informazioni sulla networking e, ad esempio, provider di networking mobile.

    http://developer.android.com/reference/android/net/ConnectivityManager.html

    Dopo tutto suppongo che nessun modo per get queste informazioni al giorno d'oggi. Si prega di leggerlo e ha trovato un post di posti qui!

    Grazie di tutto.

    PS: Scusa per errori inglesi.

    Vuoi get il valore limite (5GB) e il valore di avviso (2GB) in questo esempio?

    Se è così, puoi get i limitiBytes e warningBytes per il seguente codice, se puoi utilizzare android.permission.MANAGE_NETWORK_POLICY e android.permission.READ_PHONE_STATE.
    Tuttavia, android.permission.MANAGE_NETWORK_POLICY protectionLevel è firma.

     NetworkPolicyManager manager = (NetworkPolicyManager) getSystemService("netpolicy"); NetworkPolicy[] networkPolicies = manager.getNetworkPolicies(); Log.d("NetworkPolicy", "limitBytes is " + networkPolicies[0].limitBytes); Log.d("NetworkPolicy", "warningBytes is " + networkPolicies[0].warningBytes); 

    (Classi NetworkPolicyManager e NetworkPolicy è class nascosta)

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.