Jak programowo pokazać wykorzystanie danych wszystkich aplikacji?

W systemie Android 4.0 i nowszych mamy opcje kontroli wykorzystania danych w telefonie. Sprawdź załączony zrzut ekranu, aby dowiedzieć się więcej.

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

Teraz mam pewne wymagania, aby sprawdzić te rzeczy (wykorzystanie danych wszystkich aplikacji w określonym przedziale czasu / określonych dniach) z mojej aplikacji. Jak mogę to osiągnąć? Używam również poniższej klasy do szczegółów użycia sieci.

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

Sprawdź poniższe obrazy linków. Muszę opracować ten sam rodzaj aplikacji.

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

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

Dziękuję za udostępnienie kodu, ale muszę znać dane używane przez każdą aplikację zamiast wszystkich aplikacji. Do tej pory zauważyłem w linkach, że nikt nie mówi o wykorzystaniu danych przez poszczególne aplikacje. Wiem już, jak wyświetlić zainstalowane aplikacje w urządzeniu. Teraz chciałbym wiedzieć, jakie są dane używane przez każdą aplikację.

Używam poniższego kodu do listy zainstalowanych aplikacji w urządzeniu.

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;
}

Skąd mam wiedzieć, jakie dane są używane przez każdą aplikację?

Właściwie potrzebuję rozwiązania, które da wykorzystanie danych w aplikacjach w określonym przedziale czasowym, czyli między dwoma dniami.

questionAnswers(3)

yourAnswerToTheQuestion