(Android 9.0)应用使用数据统计服务——UsageStatsManager


UsageStats
UsageStats是在指定时间区间内某个应用使用统计数据的封装类。包含的公开方法及对应的作用如下:

方法 用途
getFirstTimeStamp() 获取指定时间区间内应用第一次使用时间戳
getLastTimeStamp() 获取指定时间区间内应用最后一次使用时间戳
getLastTimeUsed() 获取应用最后一次使用时间戳
getPackageName() 获取应用包名
getTotalTimeInForeground() 获取应用在前台的时间
EventStats
EventStats是在指定时间区间内某个类型事件统计数据的封装类。包含的公开方法及对应的作用如下:

方法 用途
getCount() 获取在指定时间区间内事件发生的次数
getEventType() 获取事件类型
getFirstTimeStamp() 获取指定时间区间内这个事件第一次发生的时间戳
getLastEventTime() 获取这个事件最后一次发生的时间戳
getLastTimeStamp() 获取指定时间区间内这个事件最后一次发生的时间戳
getTotalTime() 获取这个事件总共发生的次数
UsageEvents
UsageEvents是用来返回指定时间区间内组件状态变化事件数据的封装类,其返回的组件状态变化事件类型如下:

UsageEvents.Event:
        public static final int NONE = 0;
        public static final int MOVE_TO_FOREGROUND = 1;
        public static final int MOVE_TO_BACKGROUND = 2;
        public static final int END_OF_DAY = 3;
        public static final int CONTINUE_PREVIOUS_DAY = 4;
        public static final int CONFIGURATION_CHANGE = 5;
        public static final int SYSTEM_INTERACTION = 6;
        public static final int USER_INTERACTION = 7;
        public static final int SHORTCUT_INVOCATION = 8;
        public static final int CHOOSER_ACTION = 9;
        public static final int NOTIFICATION_SEEN = 10;
        public static final int STANDBY_BUCKET_CHANGED = 11;
        public static final int NOTIFICATION_INTERRUPTION = 12;
        public static final int SLICE_PINNED_PRIV = 13;
        public static final int SLICE_PINNED = 14;
        public static final int SCREEN_INTERACTIVE = 15;
        public static final int SCREEN_NON_INTERACTIVE = 16;
        public static final int KEYGUARD_SHOWN = 17;
        public static final int KEYGUARD_HIDDEN = 18;

UsageStatsManager
**UsageStatsManager 是Android提供统计应用使用情况的服务。通过这个服务可以获取指定时间区间内应用使用统计数据、组件状态变化事件统计数据以及硬件配置信息统计数据。**提供的主要查询方法如下表:

方法 用途
queryAndAggregateUsageStats(long beginTime, long endTime) 获取指定时间区间内使用统计数据,以应用包名为键值进行数据合并。
queryConfigurations(int intervalType, long beginTime, long endTime) 获取指定时间区间内硬件配置信息统计数据。
queryEventStats(int intervalType, long beginTime, long endTime) 获取指定时间区间内发生组件状态变化事件统计数据。
queryEvents(long beginTime, long endTime) 获取指定时间区间内组件状态变化事件
queryEventsForSelf(long beginTime, long endTime) 与queryEvents相似,获取指定时间区间内本应用的组件状态变化事件
queryUsageStats(int intervalType, long beginTime, long endTime) 获取指定时间区间内应用使用统计数据。
查询时间间隔如下:

    public static final int INTERVAL_DAILY = 0;
    public static final int INTERVAL_WEEKLY = 1;
    public static final int INTERVAL_MONTHLY = 2;
    public static final int INTERVAL_YEARLY = 3;
    public static final int INTERVAL_BEST = 4;

 


原文链接:https://blog.csdn.net/lj19851227/article/details/81813722


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM