NetworkStatsManager: querySummary возвращает одни и те же данные за разное время начала - PullRequest
0 голосов
/ 15 ноября 2018

Я пытаюсь использовать класс NetworkStatsManager для получения данных об использовании моего приложения.Я хочу отслеживать его один раз в час (с интервалом в один час), и, когда я читаю queryDetails, это не вариант для меня, потому что это всего лишь 2-3 часа.

, когда я пытался использовать querySummary:

  private HashMap<String, Long> getNetworkStats(NetworkStatsManager networkStatsManager,
int connectivityManager,
@Nullable String subscriberId,
long startTime,
long endTime) {
  long foreground = 0;
  long background = 0;
  HashMap map = new HashMap<String, Long>();
  try {
    final NetworkStats networkStats =
        networkStatsManager.querySummary(connectivityManager, subscriberId, startTime, endTime);

    NetworkStats.Bucket bucket = new NetworkStats.Bucket();
    while (networkStats.hasNextBucket()) {
      networkStats.getNextBucket(bucket);

      if (bucket.getState() == NetworkStats.Bucket.STATE_FOREGROUND) {
        foreground += bucket.getRxBytes() + bucket.getTxBytes();
      } else {
        background += bucket.getRxBytes() + bucket.getTxBytes();
      }
    }
  } catch (RemoteException e) { }
  map.put("foreground", foreground);
  map.put("background", background);
  return map;
}

Вызовите getNetworkStats с двумя различными значениями startTime:

long endTime = System.currentTimeMillis();
long startTime1 = endTime - (3600 * 1000); //One hour ago.
long startTime2 = endTime - (3600 * 1000 * 2); //Two hours ago.
getNetworkStats(networkStatsManager, ConnectivityManager.TYPE_WIFI, startTime1, endTime)
getNetworkStats(networkStatsManager, ConnectivityManager.TYPE_WIFI, startTime2, endTime)

вернуть те же данные.Почему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...