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