• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Stationary开发指导
2
3
4## 场景介绍
5
6当应用需要获取当前设备状态时,可以调用Stationary模块,例如:需要判断当前设备处于绝对静止状态或者相对静止状态。
7
8详细的接口介绍请参考[Stationary接口](../reference/apis/js-apis-stationary.md)。
9
10## 设备状态类型参数说明
11
12| 名称 | 描述 |
13| -------- | -------- |
14| still | 绝对静止。 |
15| relativeStill | 相对静止。 |
16
17## 订阅设备状态事件参数说明
18
19| 变量                             | 值    | 说明                                       |
20| ------------------------------ | ---- | ---------------------------------------- |
21| ENTER         | 1    | 订阅进入事件。   |
22| EXIT | 2   | 订阅退出事件。 |
23| ENTER_EXIT | 3   | 订阅进入和退出事件。 |
24
25## 返回设备状态参数说明
26
27| 变量                             | 值    | 说明                                       |
28| ------------------------------ | ---- | ---------------------------------------- |
29| ENTER         | 1    | 返回进入状态。   |
30| EXIT | 2   | 返回退出状态。 |
31
32## 接口说明
33
34| 模块          | 接口名                                                       | 描述                                                         |
35| ------------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
36| ohos.stationary | on(activity: ActivityType, event: ActivityEvent, reportLatencyNs: number, callback: Callback<ActivityResponse>): void | 订阅设备状态,结果通过callback返回。 |
37| ohos.stationary | once(activity: ActivityType, callback: Callback<ActivityResponse>): void | 查询设备状态,结果通过callback返回。 |
38| ohos.stationary | off(activity: ActivityType, event: ActivityEvent, callback?: Callback<ActivityResponse>): void | 取消订阅设备状态。                                 |
39
40## 约束与限制
41
42设备需要支持加速度传感器。
43
44## 开发步骤
45
461. 订阅绝对静止的进入事件,1秒上报一次。
47
48   ```js
49   import stationary from '@ohos.stationary';
50   var reportLatencyNs = 1000000000;
51   try {
52      stationary.on('still', stationary.ActivityEvent.ENTER, reportLatencyNs, (data) => {
53         console.log('data='+ JSON.stringify(data));
54      })
55   } catch (err) {
56      console.error('errCode: ' + err.code + ' ,msg: ' + err.message);
57   }
58   ```
59
602. 查询绝对静止状态的进入事件。
61
62   ```js
63   import stationary from '@ohos.stationary';
64   try {
65      stationary.once('still', (data) => {
66         console.log('data='+ JSON.stringify(data));
67      })
68   } catch (err) {
69      console.error('errCode: ' + err.code + ' ,msg: ' + err.message);
70   }
71   ```
72
733. 取消订阅绝对静止状态的进入事件。
74
75   ```js
76   import stationary from '@ohos.stationary';
77   try {
78      stationary.off('still', stationary.ActivityEvent.ENTER, (data) => {
79         console.log('data='+ JSON.stringify(data));
80      })
81   } catch (err) {
82      console.error('errCode: ' + err.code + ' ,msg: ' + err.message);
83   }
84   ```
85