• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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&lt;SteadyStandingStatus&gt;): void; | 订阅设备静止姿态(支架态)感知,结果通过callback返回。 |
36| off(type: 'steadyStandingDetect', callback: Callback&lt;SteadyStandingStatus&gt;): 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   ```