网站开发前段和后端海南网站设计
news/
2025/9/23 22:10:15/
文章来源:
网站开发前段和后端,海南网站设计,网页设计与网站建设标准教程,外贸公司网站如何免费推广资源
官方文档 https://developer.apple.com/search/?qmotion%20graphtypeDocumentation
SensorKit 使应用程序能够访问选定的原始数据或系统从传感器处理的指标。
步骤信息加速度计或旋转速率数据用户手腕上手表的配置物理环境中的环境光有关用户日常通勤或旅行的详细…资源
官方文档 https://developer.apple.com/search/?qmotion%20graphtypeDocumentation
SensorKit 使应用程序能够访问选定的原始数据或系统从传感器处理的指标。
步骤信息加速度计或旋转速率数据用户手腕上手表的配置物理环境中的环境光有关用户日常通勤或旅行的详细信息
环境信息
环境光
ambientLightSensor
The sample type for this sensor is SRAmbientLightSample. 您需要通过将 字典添加到信息属性列表中的 键来提供记录环境光的原因。SRSensorUsageAmbientLightSensorNSSensorKitUsageDetail
SRSensorUsageAmbientLightSensor
一组属性解释您的应用程序需要观察用户环境中的光照水平。
property list key Description
解释性字符串详细说明您的研究使用传感器数据的方式。
必需的
property list key Required
一个布尔值指示您的应用程序的研究是否依赖于该传感器。SRAmbientLightSample
https://developer.apple.com/documentation/sensorkit/srambientlightsample
测量光强度
var chromaticity: SRAmbientLightSample.Chromaticity
描述样本的光亮度和色调的坐标对。
struct SRAmbientLightSample.Chromaticity
描述光亮度和色调的坐标对。
var lux: MeasurementUnitIlluminance
描述样本光通量的对象。
var placement: SRAmbientLightSample.SensorPlacement
光相对于传感器的位置。
enum SRAmbientLightSample.SensorPlacement
描述光源相对于传感器的位置的方向值。加速度计
iOS 设备都有一个三轴加速度计。加速度计报告的值以重力加速度的增量进行测量值 表示给定方向上每秒 9.8 米每秒的加速度。加速度值可以是正值或负值具体取决于加速度的方向。 使用 Core Motion 框架的类访问原始加速度计数据。具体来说 类提供了用于启用加速计硬件的接口。启用硬件时选择最适合您的应用程序的接口。您可以仅在需要时提取加速度计数据也可以要求框架定期将更新推送到您的应用程序。每种技术都涉及不同的配置步骤并具有不同的用例。CMMotionManager 重要的提示 如果您的应用依赖于加速度计硬件请使用 文件的 键 价值。有关此键含义的详细信息请参阅信息属性列表键参考。UIRequiredDeviceCapabilitiesInfo.plistaccelerometer 具体信息 https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/
检查加速度计数据的可用性
Check the value of the is AccelerometerAvailable property of CMMotionManager and make sure it’s true. If it’s false, starting updates doesn’t deliver any data to your app.
不连续获取加速度数据
对于按自己的时间表处理加速度计数据的应用例如游戏请使用 的 方法开始传送加速度计数据。当您调用此方法时系统会启用加速计硬件并开始更新 对象的 属性。但是系统在更新该属性时不会通知您。当您需要加速度计数据时必须显式检查该属性的值。 startAccelerometerUpdates()CMMotionManageraccelerometerDataCMMotionManager
开始交付加速计更新之前请通过向 属性分配值来指定更新频率。您可以请求更新的最大频率取决于硬件但通常至少为 100 Hz。如果您请求的频率高于硬件支持的频率Core Motion 会使用支持的最大值。accelerometerUpdateInterval
let motion CMMotionManager()func startAccelerometers() {// Make sure the accelerometer hardware is available. if self.motion.isAccelerometerAvailable {self.motion.accelerometerUpdateInterval 1.0 / 50.0 // 50 Hzself.motion.startAccelerometerUpdates()// Configure a timer to fetch the data.self.timer Timer(fire: Date(), interval: (1.0/50.0), repeats: true, block: { (timer) in// Get the accelerometer data.if let data self.motion.accelerometerData {let x data.acceleration.xlet y data.acceleration.ylet z data.acceleration.z// Use the accelerometer data in your app.}})// Add the timer to the current run loop.RunLoop.current.add(self.timer!, forMode: .defaultRunLoopMode)}
}显示了一种将加速度计更新配置为每秒发生 50 次的方法。然后该方法配置一个计时器以相同的频率获取这些更新并对数据执行某些操作。您可以将计时器配置为以较低的频率触发但这样做会导致硬件生成比实际使用的更新更多的更新从而浪费电量。
处理稳定的加速度计数据流
当您想要捕获所有传入的加速度计数据也许可以分析其运动模式时请使用 方法 。此方法通过在指定队列上执行处理程序块将每组新的加速度计值推送到您的应用程序。这些块的排队可确保您的应用接收所有加速计数据即使您的应用变得繁忙并且短时间内无法处理更新。startAccelerometerUpdates(to:withHandler:)CMMotionManager
开始交付加速计更新之前请通过向 属性分配值来指定更新频率。您可以请求更新的最大频率取决于硬件但通常至少为 100 Hz。如果您请求的频率高于硬件支持的频率Core Motion 将使用支持的最大值。 accelerometerUpdateInterval
清单 2 显示了 MotionGraphs 示例代码项目中的方法您可以检查该方法以了解更多信息语境。该应用程序显示加速度计数据的实时图表。用户使用滑块配置加速度计的更新频率更改该频率会导致调用示例中所示的 方法。此方法以新频率重新启动加速度计更新。每次收到新样本时指定的块都会在主线程上排队。该块使用新的加速度计值更新应用程序的图形视图和标签。 startUpdatesWithSliderValue:
static const NSTimeInterval accelerometerMin 0.01;
- (void)startUpdatesWithSliderValue:(int)sliderValue {// Determine the update interval.NSTimeInterval delta 0.005;NSTimeInterval updateInterval accelerometerMin delta * sliderValue;// Create a CMMotionManager object.CMMotionManager *mManager [(APLAppDelegate *)[[UIApplication sharedApplication] delegate] sharedManager];APLAccelerometerGraphViewController * __weak weakSelf self;// Check whether the accelerometer is available.if ([mManager isAccelerometerAvailable] YES) {// Assign the update interval to the motion manager.[mManager setAccelerometerUpdateInterval:updateInterval];[mManager startAccelerometerUpdatesToQueue:[NSOperationQueue mainQueue]withHandler:^(CMAccelerometerData *accelerometerData, NSError *error) {[weakSelf.graphView addX:accelerometerData.acceleration.x y:accelerometerData.acceleration.y z:accelerometerData.acceleration.z];[weakSelf setLabelValueX:accelerometerData.acceleration.x y:accelerometerData.acceleration.y z:accelerometerData.acceleration.z];}];}self.updateIntervalLabel.text [NSString stringWithFormat:%f, updateInterval];
}
- (void)stopUpdates {CMMotionManager *mManager [(APLAppDelegate *)[[UIApplication sharedApplication] delegate] sharedManager];if ([mManager isAccelerometerActive] YES) {[mManager stopAccelerometerUpdates];}
}CMRecordedAccelerometerData
class CMRecordedAccelerometerData : CMAccelerometerData
设备记录的单条加速度计数据。使用CMSensorRecorder 对象从系统中检索已记录的数据。
var startDate: Date
记录传感器样本时的挂钟时间。
var identifier: UInt64
加速度计数据的唯一标识符。class CMSensorDataList : NSObject
系统记录的加速度计数据列表
https://developer.apple.com/documentation/coremotion/cmsensordatalist
使用传感器数据列表对象来枚举加速度计数据
-(void)processSamplesFromDate:(NSDate*)start toDate:(NSDate)end {CMSensorRecorder* recorder [[CMSensorRecorder alloc] init];CMSensorDataList* list [recorder accelerometerDataFrom:start to:end];for (CMRecordedAccelerometerData* data in list) {// Process the data.NSLog(Sample: (%f, %f, %f), data.acceleration.x,data.acceleration.y, data.acceleration.z);}
}class CMSensorRecorder : NSObject
提供加速度运动数据的传感器。使用传感器记录器启动加速度计数据的收集。稍后使用传感器记录器获取记录的数据以便您可以对其进行分析。您可以使用记录的数据来评估特定类型的运动并将结果合并到您的应用程序中。
要使用传感器记录器请创建此类的实例并调用 方法来开始记录数据。您不需要明确停止录制过程。当指定时间到期且没有其他应用延长录音时间时系统自动停止录音。 清单 1 显示了如何记录 20 分钟的加速度计数据。 recordAccelerometer(forDuration:)
static let accelerometer: SRSensor https://developer.apple.com/documentation/sensorkit/srsensor/3377672-accelerometer
if CMSensorRecorder.isAccelerometerRecordingAvailable() {let recorder CMSensorRecorder()recorder.recordAccelerometerForDuration(20 * 60) // Record for 20 minutes
}static let odometer: SRSensor 提供有关速度和坡度信息的传感器。h ttps://developer.apple.com/documentation/sensorkit/srsensor/4173050-odometer
class CMAccelerometerData : CMLogItem
来自设备的三个加速计的数据样本。
访问加速度计数据
var acceleration: CMAcceleration
由加速度计测量的加速度。
struct CMAcceleration
包含 3 轴加速度值的结构类型。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/914042.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!