2015-02-11 3 views
0

Привет Я пытаюсь получить использование каждого приложения для Android, используя приведенный ниже код.Статистика трафика сбрасывается при загрузке

PackageManager packageManager = getActivity().getPackageManager(); 
    List<PackageInfo> applist = packageManager.getInstalledPackages(0); 
    Iterator<PackageInfo> it = applist.iterator(); 

    while (it.hasNext()) { 
     PackageInfo pk = (PackageInfo) it.next(); 
     if (pk.versionName == null) { 
      continue ; 
     } 
     double received = (double) TrafficStats.getUidRxBytes(pk.applicationInfo.uid) 

       /(1024 * 1024); 
     double send = (double) TrafficStats.getUidTxBytes(pk.applicationInfo.uid) 
       /(1024 * 1024); 
     double total = received + send; 
     textview.setText(pk.applicationInfo.loadLabel(
            getActivity().getPackageManager()) 
            .toString() + " " +String.format("%.2f", total)+" MB"); 
    } 

Но если устройство перезагрузилось, значения будут удалены. Но на устройстве, если вы идете Android Setting -> Использование данных -> Использование все еще существует. Мой вопрос:

откуда использовать информацию для каждого приложения. ?

Обозначение кода полезно. Благодарю.

+0

Вы нашли решение по этому вопросу – Javanator

+0

Я не нашёл :( – Madhukar

ответ

0

TrafficStats.getUidRxBytes (int) будет возвращать только данные из загрузки устройства. Почему бы вам не попробовать записать данные трафика в файл, чтобы он был доступен после загрузки? Вы можете создать службу START_REDELIVER_INTENT для запуска в фоновом режиме

+0

UID не является постоянным для приложений, он будет изменен системой, если он не является наиболее активным или любые другие алгоритмы, которые были сделаны в android, но если вы видите nexus или любое использование 4.4.4 +, вы можете получить все данные для каждого приложения из прошлых месяцев. – Madhukar

+0

@Fabin Paul Как получить сохраненные данные после загрузки в день. –

Смежные вопросы