(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