iT邦幫忙

2024 iThome 鐵人賽

DAY 13
0
Mobile Development

自己的 app 自己寫系列 第 13

[Day13] 早起的鐵人沒有蟲吃

  • 分享至 

  • xImage
  •  

晚上事情太多了大概率沒辦法壓線發文只好早起寫文QQ

今天早上大約掃了一下幾篇介紹 screen time 的文章(by letvar (1) (2) (3) ),然後多發現一個新的 framework:ScreenTime。不過雖然名字這樣取,我們需要的依舊是 DeviceActivity,ScreenTime 是用來給家長們管理小孩手機的,不知道背後邏輯是怎麼運作的想想就挺有趣。

多發現的一件事是,想要成功使用 DeviceActivity 之前,大概率要先獲得授權。我的理解是要用 FamilyControls 底下的 selector 去選擇一包 app,然後把這些東西丟給 DeviceActivity 去監管。

struct ExampleView: View {
    @State var selection = FamilyActivitySelection()


    var body: some View {
        VStack {
            FamilyActivityPicker(selection: $selection)
        }
        .onChange(of: selection) { newSelection in
            let applications = selection.applications
            let categories = selection.categories
            let webDomains = selection.webDomains
        }
    }
}

看這段 code 可能會有點陌生又有點熟悉,前幾天在研究某個 DeviceActivity 物件的時候,就是要把 applications, categories, webDomains 給丟進去。所以理想上應該可以從這裡選出一系列的東西(或直接全選),然後再進行後續動作吧。

最後再紀錄一下還沒來得及看的資源,像是 WWDC 2022 Screen Time APICrunchy bagel 這篇也給了簡單的範例。以及 reddit 討論有提到好像需要向蘋果去 申請權限

翻了文件也翻到一些討論,感覺這個 app 大概率無法達到我最初想要的樣子,因為從 framework 裡面抽出 raw data 好像是 not permitted,不過還是姑且再試一試能不能更靠近吧。


上一篇
[Day12] 維運到底是不是好工作
系列文
自己的 app 自己寫13
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言