1# 设备状态感知开发指导 2 3DeviceStatus(设备状态感知)模块提供设备状态感知能力,可以获取到设备的状态感知信息,例如:获取设备静止姿态感知状态(支架态)。 4 5详细的接口介绍请参考[deviceStatus接口](../../reference/apis-multimodalawareness-kit/js-apis-awareness-deviceStatus.md)。 6 7## 基本概念 8 9在进行设备状态感知模块的使用前,开发者应了解以下基本概念: 10 11- 支架态 12 13 设备进入支架态指设备静止,且屏幕与水平面角度处于45度-135度。折叠屏手机需处于折叠状态或者完全展开状态。 14 15## 获取设备静止姿态感知状态(支架态)开发指导 16 17### 场景介绍 18 19开发过程中,需要订阅设备静止姿态(支架态)感知,并且通过订阅时传入的回调函数来获取到当前的状态值。 20 21### 约束与限制 22 23<!--RP1-->设备需要支持加速度计,并支持特定芯片。<!--RP1End--> 24 25### 接口说明 26 27| 接口名 | 描述 | 28| ------------------------------------------------------------ | -------------------------------------- | 29| on(type: 'steadyStandingDetect', callback: Callback<SteadyStandingStatus>): void; | 订阅设备静止姿态(支架态)感知,结果通过callback返回。 | 30| off(type: 'steadyStandingDetect', callback: Callback<SteadyStandingStatus>): void; | 取消订阅设备静止姿态(支架态)感知。 | 31 32### 开发步骤 33 341. 导入模块。 35 36 ```ts 37 import { deviceStatus } from '@kit.MultimodalAwarenessKit'; 38 ``` 39 402. 订阅设备静止姿态(支架态)感知事件。 41 42 ```ts 43 try { 44 deviceStatus.on('steadyStandingDetect', (data:deviceStatus.SteadyStandingStatus) => { 45 console.info('now status = ' + data); 46 }); 47 } catch (err) { 48 console.info('on failed, err = ' + err); 49 } 50 ``` 51 523. 取消订阅本客户端订阅的所有设备静止姿态(支架态)感知事件。 53 54 ```ts 55 try { 56 deviceStatus.off('steadyStandingDetect'); 57 } catch (err) { 58 console.info('off failed, err = ' + err); 59 } 60 ``` 61 624. 取消订阅设备静止姿态(支架态)感知事件的特定回调。 63 64 ```ts 65 import { Callback } from '@ohos.base'; 66 // 定义callback变量 67 let callback : Callback<deviceStatus.SteadyStandingStatus> = (data : deviceStatus.SteadyStandingStatus) => { 68 console.info('now status = ' + data); 69 }; 70 // 以callback为回调函数,订阅设备静止姿态感知(支架态)事件 71 try { 72 deviceStatus.on('steadyStandingDetect', callback); 73 } catch (err) { 74 console.info('on failed, err = ' + err); 75 } 76 // 取消该客户端订阅设备静止姿态感知(支架态)事件的特定回调函数 77 try { 78 deviceStatus.off('steadyStandingDetect', callback); 79 } catch (err) { 80 console.info('off failed, err = ' + err); 81 } 82 ```