screen time monitor app 需要的 lib 基本上確定只需要 DeviceActivity 這個 module(FamilyControls 和 ManagedSettings 應該還不會用到),而 lib 裡面最主要的我猜是 DeviceActivityReport。
在文件範例中,DeviceActivityReport 初始化時需要初始化時需要 context 和 filter 兩項參數,兩項參數,context 是設定了要怎麼去配置 DeviceActivityReportView,filter 則是可以依照時間間隔、應用程式類型等去進行篩選與查閱。
DeviceActivityData 則是表示某個裝置在一段時間內的活動數據,DeviceActivityData.ActivitySegment 是表示 user 在特定時間區段內的活動,內部包含了 dateInterval 和 totalActivityDuration,看起來蠻有可能可以拿到時間段內(如一天內)的使用資料。使用資料。底下還有 DeviceActivityData.WebDomainActivity,但不確定實際運作邏輯和紀錄的資料範圍(例如是否所有 app 造訪的 web domain 都會被紀錄,這點在文檔中沒有提及)。而 DeviceActivityData.ApplicationActivity 看起來也是有用的性質,可以把使用時間依照 app 區分開來。
上面所講到的這些應該就都是會用到的 struct,不過實際上要怎麼接起來,問 ChatGPT 後好像還是有一些地方需要改動,這邊就之後繼續摸索吧。