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 deUsageStatsManager
parecí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ía3pmMedianocheMe 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?