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