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