1# Sensor Service Kit开发简介 2<!--Kit: Sensor Service Kit--> 3<!--Subsystem: Sensors--> 4<!--Owner: @dilligencer--> 5<!--Designer: @butterls--> 6<!--Tester: @murphy84--> 7<!--Adviser: @hu-zhiqiong--> 8 9## 使用场景 10 11Sensor Service Kit(传感器服务)使应用程序能够从传感器获取原始数据,并提供振感控制能力。 12 13- Sensor(传感器)模块是应用访问底层硬件传感器的一种设备抽象概念。开发者可根据传感器提供的相关接口订阅传感器数据,并根据传感器数据定制相应的算法开发各类应用,比如指南针、运动健康、游戏等。 14 - 本地传感器: 设备内置的传感器,常用的包括加速度传感器、陀螺仪、温度传感器等。 15 - 动态传感器: 指外置的动态传感器,模块能力可以更细化的控制每个动态传感器。为了管理这些动态接入的设备,应使用 sensor.on('sensorStatusChange', callback) 来监听设备上下线事件。在收到下线通知时,务必调用 sensor.off(...) 来释放之前监听的动态传感器资源,避免内存泄漏或异常调用。 16 17- Vibrator(振动)模块最大化开放马达器件能力,通过拓展马达服务实现振动与交互融合设计,打造细腻精致的一体化振动体验和差异化体验,提升用户交互效率和易用性、提升用户体验、增强品牌竞争力。 18 - 本地马达: 设备内置的马达,常用的包括转子马达、线性马达等。 19 - 动态马达: 设备外置的多个马达支持独立控制,且可以根据设备的连接、马达的状态等信息进行灵活的管理。动态马达广泛应用于外接设备,包括手柄、遥控器、外接振动器等, 为了管理这些动态接入的设备,应使用 vibrator.on('vibratorStateChange', callback) 来监听设备上下线事件。 20 21 22## 约束限制 23 24### Sensor 25 26- 要使用传感器的功能,设备必须具有对应的传感器器件。 27 28- 针对某些传感器,开发者需要请求相应的权限,才能获取到相应传感器的数据。 29 30- 传感器数据订阅和取消订阅接口成对调用,当不再需要订阅传感器数据时,开发者需要调用取消订阅接口停止数据上报。 31 32- 动态传感器断开后应用需要主动解除订阅操作。 33 34### Vibrator 35 36- 要使用振动的功能,设备必须具有对应的器件。 37- 针对马达,开发者需要请求相应的权限才能使用。 38- 多个振动器的控制:当存在多个可控振动设备时,应用需要通过 getVibratorInfoSync() 查询可用的马达列表,并在调用 startVibration 或 stopVibration 时,传入 deviceId 和 vibratorId 等参数来精确控制目标马达。