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

iOS中是否存在查询当前专注模式名称的API?

获取Apple专注模式名称的API方案
  • 适用系统版本:iOS 15+、macOS 12+、watchOS 8+、tvOS 15+
  • 核心API调用:使用UserNotifications框架中的UNUserNotificationCenter.getCurrentFocusModes(_:)方法,直接获取当前激活的专注模式列表,每个模式对象包含displayName(用户可见的名称)和identifier(唯一标识)。

代码示例

import UserNotifications

// 请求通知权限(必须先完成这一步才能访问专注模式信息)
UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .badge, .sound]) { granted, error in
    guard granted, error == nil else {
        // 权限未授予,无法获取专注模式信息
        return
    }
    
    // 获取当前激活的专注模式
    UNUserNotificationCenter.current().getCurrentFocusModes { activeModes, error in
        guard let modes = activeModes, error == nil else {
            // 处理错误逻辑
            return
        }
        
        // 遍历激活的模式(通常只有一个处于激活状态)
        for mode in modes {
            let focusModeName = mode.displayName
            let focusModeID = mode.identifier
            // 这里拿到名称后就可以用来筛选任务了
            print("当前激活的专注模式:\(focusModeName)")
        }
    }
}
  • 注意事项:
    1. 必须先请求通知权限,否则无法调用专注模式相关API;
    2. 如果用户同时激活多个专注模式(比如叠加模式),activeModes会返回所有激活项,按需处理即可;
    3. 系统默认的专注模式(如“工作”“个人”)和用户自定义的模式都能通过该API获取名称。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 07:23:18