• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 获取用户动作开发指导
2
3## 场景介绍
4
5当应用需要获取用户动作时,可以调用motion模块,例如判断用户当前是用左手还是右手操作设备屏幕。
6
7详细的接口介绍请参考[Motion接口](../../reference/apis-multimodalawareness-kit/js-apis-awareness-motion.md)。
8
9## 接口说明
10
11| 接口名                                                       | 描述                                   |
12| ------------------------------------------------------------ | -------------------------------------- |
13| on(type:'operatingHandChanged',callback:Callback<OperatingHandStatus>):void; | 订阅操作手感知,操作手结果通过callback返回。 |
14| off(type: 'operatingHandChanged', callback?: Callback<OperatingHandStatus>): void; | 取消订阅操作手感知。                   |
15| getRecentOperatingHandStatus(): OperatingHandStatus;         | 获取最新的操作手状态。                 |
16
17## 约束与限制
18
19 - 设备需支持触控屏并兼容特定芯片。
20
21 - 指关节操作不属于使用手操作场景。
22
23 - 窗口旋转场景,多指同时操作场景不支持。
24
25 - 能力有效范围:不包含距离屏幕边缘8mm内区域。
26
27
28
29## 开发步骤
30
311. 导入模块。
32
33   ```ts
34   import { motion } from '@kit.MultimodalAwarenessKit';
35   import { BusinessError } from '@kit.BasicServicesKit';
36   ```
37
382. 定义回调函数接收操作手结果
39
40   ```
41   callback(data:motion.OperatingHandStatus) {
42     console.info('callback success' + data);
43   }
44   ```
45
463. 订阅操作手感知
47
48   ```
49   try {
50      motion.on('operatingHandChanged', this.callback);
51      console.info("on succeeded");
52   } catch (err) {
53      let error = err as BusinessError;
54      console.error("Failed on and err code is " + error.code);
55   }
56   ```
57
584. 取消订阅操作手感知
59
60   ```
61   try {
62      motion.off('operatingHandChanged');
63      console.info("off succeeded");
64   } catch (err) {
65      let error = err as BusinessError;
66      console.error("Failed off and err code is " + error.code);
67   }
68   ```
69
705. 获取最新操作手状态
71
72   ```
73   try {
74      let data:motion.OperatingHandStatus = motion.getRecentOperatingHandStatus();
75      console.info('get success' + data);
76   } catch (err) {
77      let error = err as BusinessError;
78      console.error("Failed get and err code is " + error.code);
79   }
80   ```
81
82