如何将Apple Watch置于防水模式?

时间:2017-02-02 17:50:04

标签: swift apple-watch

我有一个游泳训练设置。

let configuration = HKWorkoutConfiguration()
configuration.activityType = .swimming
configuration.locationType = .outdoor

do {
    workoutSession = try HKWorkoutSession(configuration: configuration) 
    workoutSession!.delegate = self
    healthStore.start(workoutSession!)
} catch let error as NSError {
    // Perform proper error handling here...
    fatalError("*** Unable to create the workout session: \(error.localizedDescription) ***")
}

但我的客户说,除非他手动制作,否则手表不会进入防水模式。

对于上下文,“防水锁定”是Watch Series 2在开始游泳训练时应该进入的模式。来自an Apple Support article

  

当您开始游泳训练时,Apple Watch会自动锁定屏幕并使用水锁以避免意外敲击。完成后,转动数字表冠解锁屏幕并清除Apple Watch中的水。你听到声音,手腕上可能会有水。

此功能似乎不适用于我的应用。

我只有一个0系列要测试,所以我无法确认我的代码在防水锁方面发生了什么。

我是否遗漏了一些东西让锻炼使手表进入防水模式?

2 个答案:

答案 0 :(得分:1)

目前没有"防水模式"。我的客户的印象是有。

本机Apple Exercise应用程序有一个按钮,用于锁定手表并忽略交互,直到数字表冠旋转。目前,这在第三方应用中无法重现。

我找到的解决方案是禁用手表应用程序上的所有按钮。这样,按钮在水中时不会被意外敲击。用户必须强制触摸手表以重新启用按钮。

答案 1 :(得分:0)

从watchOS 4开始可用: https://developer.apple.com/documentation/watchkit/wkextension/2868458-enablewaterlock

// Only an application which is in an active workout or location session and is foreground is allowed to enable water lock @available(watchOS 4.0, *) open func enableWaterLock()

开始游泳/水上运动时致电WKExtension.shared().enableWaterLock()