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