Android: UsageStatsManager no devuelve resultados diarios correctos

Estoy intentando consultarUsageStats deUsageStatsManager, con el objetivo de devolver todos los paquetes de aplicaciones que se usaron diariamente y durante cuánto tiempo.

El código:

public static List<UsageStats> getUsageStatsList(Context context){
    UsageStatsManager usm = getUsageStatsManager(context);
    Calendar calendar = Calendar.getInstance();
    long endTime = calendar.getTimeInMillis();
    calendar.add(Calendar.DAY_OF_YEAR, -1);
    long startTime = calendar.getTimeInMillis();

    List<UsageStats> usageStatsList = usm.queryUsageStats(UsageStatsManager.INTERVAL_DAILY,startTime, endTime);
    return usageStatsList;
}

Tengo una alarma que se activa todos los días justo antes de la medianoche y consulta las estadísticas de uso y luego almacena los datos devueltos. Al principio, todo parecía funcionar bien y estaba obteniendo resultados de paquetes y su tiempo activo, sin embargo, agregué una función que verificaría los resultados cada hora y aquí es donde hice un descubrimiento extraño.

Los resultados deUsageStatsManagerparecía estar reiniciando en diferentes momentos, en lugar de a medianoche, que es lo que hubiera esperado considerando que estaba usandoINTERVAL_DAILY como un parámetro de búsqueda

A partir de los datos que guardé, los resultados del 'tiempo' del paquete parecen estar restableciéndose en (Tiempos difíciles):

3amMediodía3pmMedianoche

Me doy cuenta de que existe una correlación entre el momento en que se restablecen los tiempos del paquete, pero ¿está destinado a suceder?

Ya he visto el siguiente hilo y es de donde obtuve mucha de mi información:¿Cómo usar UsageStatsManager?

Por consiguiente:¿UsageStatsManager de Android produce resultados incorrectos? En los comentarios menciona que los datos devueltos dequeryUsageStats no se puede confiar y se devuelven resultados aleatorios.

¿Me estoy perdiendo algo simple o esUsageStatsManager no funciona correctamente?

Respuestas a la pregunta(4)

Su respuesta a la pregunta