NetworkStatsManager.queryDetailsForUid не получает правильные данные за указанный интервал времени

1) Я проверяю на нуге, у меня уже есть следующее разрешение

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission
android:name="android.permission.PACKAGE_USAGE_STATS"
tools:ignore="ProtectedPermissions"/>

2) Фрагмент кода

    public long getPackageRxBytesWifi() {
    NetworkStats networkStats = null;
    NetworkStats.Bucket bucket;
    long totalData= 0;
    try {
        networkStats = networkStatsManager.queryDetailsForUid(
                ConnectivityManager.TYPE_WIFI,
                "",
                1488441600 ,
                1488902400 ,
                packageUid);
    } catch (RemoteException e) {
        e.printStackTrace();
    }

    do {
        bucket = new NetworkStats.Bucket();
        networkStats.getNextBucket(bucket);
        Log.i("abc", "Start Time Stamp: " + bucket.getStartTimeStamp());
        Log.i("abc", "End Time Stamp: " + bucket.getEndTimeStamp());
        totalData= totalData+ bucket.getRxBytes() + bucket.getTxBytes();
    }while (networkStats.hasNextBucket());
    return totalData;

3) Когда я даю интервал Start Time - 0 End Time - System.currentTimeMillis(), получая правильные данные. Но когда я даю другой интервал времени Время начала - 1488441600 (2 марта) Время окончания - 1488902400 (7 марта 11;30) Выше метода возвращается 0. И bucket.getEndTimeStamp() а также bucket.getStartTimeStamp() печататься в журнале как 0. Кто-нибудь знает, как получить данные из вышеупомянутого запроса за определенный промежуток времени. Пожалуйста, исправьте меня, где я делаю неправильно.

1 ответ

Решение

Мне кажется, что вы действительно проходите в секундах, когда это должно быть в миллисекундах. Ниже я перевел ваше время в миллисекунды. Не могли бы вы попытаться настроить свой код на следующее?

try {
        networkStats = networkStatsManager.queryDetailsForUid(
                ConnectivityManager.TYPE_WIFI,
                "",
                1488441600000L ,
                1488902400000L ,
                packageUid);
    } catch (RemoteException e) {
        e.printStackTrace();
}
Другие вопросы по тегам