You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过Flutter插件访问Apple DeviceActivity API遇阻求助

获取Apple Screen Time DeviceActivityData 完整示例

关键修复与补充步骤

  • 确认AuthorizationCenter授权状态为.authorized(你已实现授权,可在查询前检查状态)
  • 启动监控后,需调用DeviceActivityCenter的queryActivityData方法主动获取数据
  • 注意时间范围的合理设置,数据收集存在延迟,刚启动监控可能返回空结果

完整代码示例

public class SwiftAppUsagePlugin: NSObject, FlutterPlugin {
  
  //** boilerplate flutter plugin code removed for readability **//

  func startMonitoring() {
        let schedule = DeviceActivitySchedule(intervalStart: DateComponents(hour: 0, minute: 0), intervalEnd: DateComponents(hour: 23, minute: 59), repeats: true, warningTime: nil)
      
        let center = DeviceActivityCenter()
        do {
            try center.startMonitoring(.daily, during: schedule)
            print("Monitor started")
            // 启动监控后触发数据查询(可根据业务逻辑调整查询时机)
            queryDeviceActivityData()
        } catch {
            print("Could not start monitoring \(error)")
        }  
    }

    func queryDeviceActivityData() {
        let center = DeviceActivityCenter()
        let calendar = Calendar.current
        // 设置查询时间范围:今日0点至当前时间
        let startOfDay = calendar.startOfDay(for: Date())
        let endDate = Date()
        
        center.queryActivityData(for: .daily, from: startOfDay, to: endDate) { result in
            switch result {
            case .success(let activityData):
                print("获取到设备活动数据:\(activityData)")
                // 遍历应用使用数据
                for appActivity in activityData.applicationActivity {
                    print("应用BundleID:\(appActivity.bundleIdentifier),总使用时长:\(appActivity.totalUsageTime)秒")
                }
            case .failure(let error):
                print("查询设备活动数据失败:\(error.localizedDescription)")
            }
        }
    }
}

extension DeviceActivityName {
    static let daily = Self("daily")
}

额外注意事项

  • 确保Info.plist中添加了NSFamilyUsageDescription字段,填写访问屏幕时间数据的用途说明
  • 数据收集存在系统级延迟,建议在监控启动一段时间后再发起查询
  • 若涉及家庭共享场景,需确保已完成Family Control的相关配置与权限申请

内容的提问来源于stack exchange,提问作者DerCommodore

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 19:10:19