Como faço para mostrar programaticamente o uso de dados de todos os aplicativos?

No Android 4.0 em diante, temos opções de controle de uso de dados no telefone. Por favor, verifique a captura de tela anexada para maior compreensão.

http://developer.android.com/about/versions/android-4.0-highlights.html

Agora eu tenho algum requisito para verificar essas coisas (o uso de todos os dados do aplicativo em período de tempo específico / dias específicos) do meu aplicativo. Como posso conseguir isso? Eu também estou usando a classe abaixo para detalhes de uso de rede.

http://developer.oesf.biz/em/developer/reference/eggplant/android/net/NetworkStatsHistory.html

Por favor, verifique as imagens abaixo link. Eu preciso desenvolver o mesmo tipo de aplicativo.

http://developer.android.com/sdk/images/4.0/usage-all-lg.png

http://developer.android.com/sdk/images/4.0/usage-maps-lg.png

Obrigado por compartilhar seu código, mas preciso saber os dados usados ​​por cada aplicativo, em vez de todos os aplicativos. Até agora eu observei nos links que ninguém está falando sobre o uso de dados de aplicativos individuais. Eu já sei como mostrar aplicativos instalados no dispositivo. Agora eu gostaria de saber quais são os dados usados ​​por cada aplicativo.

Eu estou usando o código abaixo para lista de aplicativos instalados no dispositivo.

private ArrayList<PInfo> getInstalledApps(boolean getSysPackages) {
    ArrayList<PInfo> res = new ArrayList<PInfo>();

    List<PackageInfo> packs = getPackageManager().getInstalledPackages(0);

    for (int i=0; i<packs.size(); i++) {
        PackageInfo p = packs.get(i);
        if ((!getSysPackages) && (p.versionName == null)) {
            continue ;
        }
        PInfo newInfo = new PInfo();
        newInfo.setAppname(p.applicationInfo.loadLabel(getPackageManager()).toString());
        newInfo.setPname(p.packageName);
        newInfo.setVersionName(p.versionName);
        newInfo.setVersionCode(p.versionCode);
        newInfo.setIcon(p.applicationInfo.loadIcon(getPackageManager()));

        res.add(newInfo);
    }
    return res;
}

Como eu sei quais são os dados usados ​​por cada aplicativo?

Na verdade, eu preciso de uma solução que forneça o uso de dados de aplicativos em um determinado período de tempo, ou seja, entre dois dias.

questionAnswers(3)

yourAnswerToTheQuestion