多肉胡 2023-04-06 17:50 采纳率: 0%
浏览 87
已结题

如何用Swift调用IOS屏幕时间管理控制app使用

最近在开发一个时间管理类的东西,通过设置允许使用的应用,从而禁止非白名单应用打开,请问各位

  1. 如何在Swift中调用Apple的Screen Time API,去控制其他app的使用呀
  2. 我是用flutter写的,所以我想集成到flutter里,要是能帮忙解决最好,可报价
  • 写回答

3条回答 默认 最新

  • Dummer25 2023-04-07 01:49
    关注

    首先是无法通过 Swift 或者 Flutter 直接调用 Screen Time API 来控制其他应用的使用的,ios权限管理等级本来就高
    你可以换个思路,我觉得你可以使用 flutter_device_lock 插件,这个插件提供了一种在Flutter应用程序中控制设备锁定的方法,可以防止用户在特定的时间段内访问设备,目测应该可以实现的需要

    评论
  • 极客智能体-在线 2023-04-07 05:32
    关注

    以下答案由GPT-3.5大模型与博主波罗歌共同编写:
    很抱歉,目前为止Apple并没有公开屏幕时间管理API供开发者使用。因此,你无法使用Swift或其他编程语言直接调用Apple的屏幕时间管理控制应用。

    不过,你可以考虑使用Flutter插件或库,或者调用第三方的时间管理控制API来实现你的需求。你可以在Flutter社区中搜索已有的插件或库,或自己创建一个插件去实现这个需求。

    需要注意的是,调用第三方的时间管理控制API可能涉及安全性问题,请谨慎选择。
    如果我的回答解决了您的问题,请采纳!

    评论
  • mys040530 2023-04-07 06:13
    关注

    引用Chatgpt:

    1. 在Xcode中创建一个新的Swift项目,并在项目中导入屏幕时间管理控制框架。要导入框架,请在项目中的“Build Phases”选项卡下,展开“Link Binary With Libraries”,点击“+”按钮,然后搜索并选择“ScreenTime.framework”。

    2. 在Swift文件中导入屏幕时间框架。在文件开头添加以下代码:

    import ScreenTime
    
    1. 创建一个STScreenTimeConfiguration对象。这个对象将包含您的屏幕时间限制配置。例如,要设置每天最多可以使用2小时30分钟,并且允许使用所有应用程序,请使用以下代码:
    let configuration = STScreenTimeConfiguration()
    configuration.dailyAllowances = [.init(.init(hour: 2, minute: 30), for: .allApps)]
    
    1. 通过STScreenTimeManager对象应用您的配置。您可以使用以下代码将配置应用到设备上:
    let screenTimeManager = STScreenTimeManager.shared()
    screenTimeManager.apply(configuration) { (error) in
        if let error = error {
            // 处理错误
        } else {
            // 应用配置成功
        }
    }
    

    在这个例子中,我们使用了回调函数来处理在应用配置时可能发生的错误。如果没有错误发生,回调函数将被调用,并且您可以在其中执行任何必要的操作。

    请注意,以上步骤仅提供了一个基本的示例,您可能需要根据您的具体需求进行更改和调整。建议您查阅相关文档或咨询IOS开发专家以获取更详细的帮助。
    如果问题解决,请采纳建议

    评论
编辑
预览

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月8日
  • 赞助了问题酬金50元 4月7日
  • 创建了问题 4月6日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部