在 iOS 12 中以编程方式从屏幕时间获取应用程序使用情况

Programmatically get application usage from Screen Time in iOS 12

我正在做一个项目,我想获得其他应用程序的使用时间。苹果推出了 iOS 12 并提供了新功能 Screen Time。我想知道 Apple 是否提供任何方法或 API 从中获取数据。

不,在 iOS 每个应用程序都在自己的沙盒中运行,无法查看来自其他应用程序的数据,即使是来自同一发布者的应用程序。一个应用程序可以访问特殊的共享数据,例如相册中的照片或联系人数据,但一个应用程序不能直接访问其他应用程序写入的文件。

ScreenTime 应用程序与您的应用程序位于另一个沙盒中。除非 apple 提供 API 我们无法访问它。


更新

由于 Apple 已将屏幕时间应用程序添加到 ios12 模拟器中。他们可能很快就会提供 API。

在 iOS 15 Apple 添加了一个 API,请参阅此处: https://developer.apple.com/documentation/FamilyControls

FamilyControls

Authorize your app to provide parental controls on a child’s device. To authorize your parental controls app, use a shared AuthorizationCenter instance. You can authorize parental controls only on a device that is part of a Family Sharing group and signed into a child’s iCloud account.

您必须将家庭控制功能添加到您的应用中。

这似乎只为家长控制应用程序提供功能。换句话说,它目前不能被其他时间跟踪或生产力应用程序使用。