(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
搜尋
複製