SensorKit - 获取数据不调用结果委托函数
SensorKit - Fetching data don't call results delegate function
最近我们获得了 Apple 的批准,可以使用 SensorKit。以下是我检查的所有先决条件:
- 我很确定项目配置正确。权利文件包含所有传感器的列表,Info.plist 包含
NSSensorKitUsageDescription
、NSSensorKitUsageDetail
和 NSSensorKitPrivacyPolicyURL
。
- 当我请求对传感器(例如加速度计)的授权时,会显示系统对话框,我批准它并且在 phone
Settings -> Privacy -> Research Sensor & Usage Data
部分 中明确允许
- 我开始记录传感器
- 我等了超过 24 小时(实际上是 6 天)
- 我用正确的时间间隔创建了
SRFetchRequest
(见下面的代码)
let now = Date()
let from = Date(timeInterval: -3 * 24 * 60 * 60, since: now) as NSDate
let to = Date(timeInterval: -2 * 24 * 60 * 60, since: now) as NSDate
let request = SRFetchRequest()
request.device = SRDevice.current
request.from = from.srAbsoluteTime
request.to = to.srAbsoluteTime
reader.fetch(request)
有趣的是,没有触发错误。实际上调用了 func sensorReader(_ reader: SRSensorReader, didCompleteFetch fetchRequest: SRFetchRequest)
委托方法,但从未调用 func sensorReader(_ reader: SRSensorReader, fetching fetchRequest: SRFetchRequest, didFetchResult result: SRFetchResult<AnyObject>) -> Bool
方法。
有人成功了吗?知道为什么它不起作用吗?
对于那些感兴趣的人,我发现了一个问题。我试图从我的 Apple Watch 系列 3 中收集它们,但它们可能不受支持。对于系列 6(或来自 iPhone),它可以正常工作。有趣的是,任何地方都没有记录设备支持...
最近我们获得了 Apple 的批准,可以使用 SensorKit。以下是我检查的所有先决条件:
- 我很确定项目配置正确。权利文件包含所有传感器的列表,Info.plist 包含
NSSensorKitUsageDescription
、NSSensorKitUsageDetail
和NSSensorKitPrivacyPolicyURL
。 - 当我请求对传感器(例如加速度计)的授权时,会显示系统对话框,我批准它并且在 phone
Settings -> Privacy -> Research Sensor & Usage Data
部分 中明确允许
- 我开始记录传感器
- 我等了超过 24 小时(实际上是 6 天)
- 我用正确的时间间隔创建了
SRFetchRequest
(见下面的代码)
let now = Date()
let from = Date(timeInterval: -3 * 24 * 60 * 60, since: now) as NSDate
let to = Date(timeInterval: -2 * 24 * 60 * 60, since: now) as NSDate
let request = SRFetchRequest()
request.device = SRDevice.current
request.from = from.srAbsoluteTime
request.to = to.srAbsoluteTime
reader.fetch(request)
有趣的是,没有触发错误。实际上调用了 func sensorReader(_ reader: SRSensorReader, didCompleteFetch fetchRequest: SRFetchRequest)
委托方法,但从未调用 func sensorReader(_ reader: SRSensorReader, fetching fetchRequest: SRFetchRequest, didFetchResult result: SRFetchResult<AnyObject>) -> Bool
方法。
有人成功了吗?知道为什么它不起作用吗?
对于那些感兴趣的人,我发现了一个问题。我试图从我的 Apple Watch 系列 3 中收集它们,但它们可能不受支持。对于系列 6(或来自 iPhone),它可以正常工作。有趣的是,任何地方都没有记录设备支持...