¿UsageStatsManager de Android produce resultados incorrectos?

Estoy usando estoenlazar para producir estados de uso de la aplicación. Mi entendimiento con el intervalo elegido es que paraYEARLY intervalo, agrega datos para cadaYEAR para cada paquete entrebeginTime yendTime duración. Del mismo modo, debería funcionar paraWEEKLY yDAILY intervalos.

ConWEEKLY, mi código y salida se dan a continuación;

Código:

Calendar beginCal = Calendar.getInstance();
beginCal.set(Calendar.DATE, 1);
beginCal.set(Calendar.MONTH, 0);
beginCal.set(Calendar.YEAR, 2012);

Calendar endCall = Calendar.getInstance();
endCall.set(Calendar.DATE, 1);
endCall.set(Calendar.MONTH, 0);
endCall.set(Calendar.YEAR, 2016);

final List<UsageStats> queryUsagesStats= mUsageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_WEEKLY, beginCal.getTimeInMillis(), endCall.getTimeInMillis());    

for(UsageStats us: queryUsagesStats)
{
    long beginTime = us.getFirstTimeStamp();
    String beginDate = df.format(new Date(beginTime));


    long endTime = us.getLastTimeStamp();
    String endDate = df.format(new Date(endTime));
    String lastTime = df.format(new Date(us.getLastTimeUsed()));
    long totalTimeInForeground = us.getTotalTimeInForeground()/1000L;
    System.out.println("Pkg = " + us.getPackageName() + ", beginTime " + beginDate + ", endTime= " + endDate + ", lastTime = " + lastTime + ", totalTime = " + totalTimeInForeground);
}

salida:

Pkg = com.example.newappusagestatistics, beginTime 05/20/2015 17:00:04, endTime= 05/21/2015 17:55:42, lastTime = 05/21/2015 17:55:42, totalTime = 11186
Pkg = com.android.launcher, beginTime 05/20/2015 17:00:04, endTime= 05/21/2015 17:55:42, lastTime = 05/21/2015 17:55:42, totalTime = 1091
Pkg = com.android.browser, beginTime 05/20/2015 17:00:04, endTime= 05/21/2015 17:15:27, lastTime = 05/21/2015 17:15:27, totalTime = 68
Pkg = com.android.sdksetup, beginTime 05/20/2015 17:00:04, endTime= 01/01/1970 15:59:55, lastTime = 05/21/2015 14:41:08, totalTime = 1194
Pkg = com.android.camera, beginTime 05/20/2015 17:00:04, endTime= 01/01/1970 15:59:55, lastTime = 05/21/2015 14:55:32, totalTime = 40
Pkg = com.android.settings, beginTime 05/20/2015 17:00:04, endTime= 01/01/1970 15:59:55, lastTime = 05/21/2015 16:15:19, totalTime = 97
Pkg = com.android.systemui, beginTime 05/20/2015 17:00:04, endTime= 01/01/1970 15:59:55, lastTime = 05/21/2015 14:47:45, totalTime = 

Sin embargo, si usoINTERVAL.DAILY para el código anterior, solo obtengo las primeras tres líneas. Mi intervalo es lo suficientemente grande como para contener todos los datos de todos los paquetes entre este intervalo.

Pkg = com.example.newappusagestatistics, beginTime 05/21/2015 17:00:00, endTime= 05/21/2015 17:59:18, lastTime = 05/21/2015 17:59:18, totalTime = 3484
Pkg = com.android.launcher, beginTime 05/21/2015 17:00:00, endTime= 05/21/2015 17:59:18, lastTime = 05/21/2015 17:59:18, totalTime = 27
Pkg = com.android.browser, beginTime 05/21/2015 17:00:00, endTime= 05/21/2015 17:15:27, lastTime = 05/21/2015 17:15:27, totalTime = 43

¿Estoy haciendo algo mal o mi comprensión sobre los intervalos agregados no es correcta? Cualquier ayuda sería apreciada. Gracias.

Editar1

Después de buscar en las tiendas de Android statsfile en la carpeta / data / system / usestats, encontré dos archivos para estadísticas diarias y uno para estadísticas semanales como se muestra a continuación.

archivo diario1

<usagestats version="1" endTime="59366071">
<packages>
<package lastTimeActive="59366071" package="com.example.newappusagestatistics" timeActive="4064908" lastEvent="1"/>
<package lastTimeActive="59366020" package="com.android.launcher" timeActive="813728" lastEvent="2"/>
<package lastTimeActive="927475" package="com.android.browser" timeActive="43838" lastEvent="2"/>
</packages>

archivo diario2

<usagestats version="1" endTime="86395657">
    <packages>
        <package lastTimeActive="86395657" package="com.example.newappusagestatistics" timeActive="7916365" lastEvent="3" />
        <package lastTimeActive="85743386" package="com.android.launcher" timeActive="1064651" lastEvent="2" />
        <package lastTimeActive="78961499" package="com.android.browser" timeActive="24715" lastEvent="2" />
        <package lastTimeActive="78063875" package="com.android.sdksetup" timeActive="1194161" lastEvent="3" />
        <package lastTimeActive="78928555" package="com.android.camera" timeActive="40775" lastEvent="2" />
        <package lastTimeActive="83715390" package="com.android.settings" timeActive="97012" lastEvent="2" />
        <package lastTimeActive="78461328" package="com.android.systemui" timeActive="4162" lastEvent="2" />
    </packages>

Semanal

<usagestats version="1" endTime="145761729">
    <packages>
        <package lastTimeActive="145761729" package="com.example.newappusagestatistics" timeActive="11981273" lastEvent="1" />
        <package lastTimeActive="145761678" package="com.android.launcher" timeActive="1878379" lastEvent="2" />
        <package lastTimeActive="87323133" package="com.android.browser" timeActive="68553" lastEvent="2" />
        <package lastTimeActive="78063875" package="com.android.sdksetup" timeActive="1194161" lastEvent="3" />
        <package lastTimeActive="78928555" package="com.android.camera" timeActive="40775" lastEvent="2" />
        <package lastTimeActive="83715390" package="com.android.settings" timeActive="97012" lastEvent="2" />
        <package lastTimeActive="78461328" package="com.android.systemui" timeActive="4162" lastEvent="2" />
    </packages>

Toda esta información parece estar desordenada. Para la misma aplicación de navegador, diariamente almacena diferentes resultados y semanalmente almacena diferentes.

Respuestas a la pregunta(2)

Su respuesta a la pregunta