Post

Replies

Boosts

Views

Activity

Reply to The DeviceActivityMonitor did not trigger a callback
Below is all the code; the method "intervalDidStart" has never been called. Can you help me? import UIKit import MobileCoreServices import ManagedSettings import DeviceActivity class MyMonitor: DeviceActivityMonitor { let store = ManagedSettingsStore() override func intervalDidStart(for activity: DeviceActivityName) { super.intervalDidStart(for: activity) print("interval did start") let model = MyModel.shared let applications = model.selectionToDiscourage.applicationTokens store.shield.applications = applications.isEmpty ? nil : applications store.appStore.maximumRating = 200 } override func intervalDidEnd(for activity: DeviceActivityName) { super.intervalDidEnd(for: activity) store.shield.applications = nil store.clearAllSettings() } } // // MyModel.swift // FamilyCotrol // // Created by mac on 2024/6/24. // import UIKit import Foundation import FamilyControls import DeviceActivity import ManagedSettings class MyModel: ObservableObject { static let shared = MyModel() let store = ManagedSettingsStore() private init() {} var selectionToDiscourage = FamilyActivitySelection() { willSet { print ("got here \(newValue)") let applications = newValue.applicationTokens let categories = newValue.categoryTokens let webCategories = newValue.webDomainTokens store.shield.applications = applications.isEmpty ? nil : applications store.shield.applicationCategories = ShieldSettings.ActivityCategoryPolicy.specific(categories, except: Set()) store.shield.webDomains = webCategories } } func initiateMonitoring() { let schedule = DeviceActivitySchedule(intervalStart: DateComponents(hour: 16, minute: 0), intervalEnd: DateComponents(hour: 16, minute: 30), repeats: true, warningTime: nil) let center = DeviceActivityCenter() do { try center.startMonitoring(.daily, during: schedule) } catch { print ("Could not start monitoring \(error)") } } func stop() { store.shield.applications = nil store.dateAndTime.requireAutomaticDateAndTime = false store.clearAllSettings() } } extension DeviceActivityName { static let daily = Self("daily") }
1w