# @ohos.multimodalInput.inputConsumer-sys (ç»„åˆæŒ‰é”®)(系统接å£) ç»„åˆæŒ‰é”®è®¢é˜…模å—,用于处ç†ç»„åˆæŒ‰é”®çš„订阅。 > **说明:** > > - 本模å—首批接å£ä»ŽAPI version 8开始支æŒã€‚åŽç»ç‰ˆæœ¬çš„æ–°å¢žæŽ¥å£ï¼Œé‡‡ç”¨ä¸Šè§’æ ‡å•ç‹¬æ ‡è®°æŽ¥å£çš„起始版本。 > > - æœ¬æ¨¡å—æŽ¥å£ä¸ºç³»ç»ŸæŽ¥å£ã€‚ ## å¯¼å…¥æ¨¡å— ```js import { inputConsumer } from '@kit.InputKit'; ``` ## inputConsumer.on on(type: 'key', keyOptions: KeyOptions, callback: Callback<KeyOptions>): void è®¢é˜…ç»„åˆæŒ‰é”®ï¼Œå½“满足æ¡ä»¶çš„ç»„åˆæŒ‰é”®è¾“入事件å‘生时,使用Callbackå¼‚æ¥æ–¹å¼ä¸ŠæŠ¥ç»„åˆæŒ‰é”®æ•°æ®ã€‚ **系统能力:** SystemCapability.MultimodalInput.Input.InputConsumer **傿•°ï¼š** | 傿•°å | 类型 | å¿…å¡« | 说明 | | ---------- | -------------------------- | ---- | ---------------------------------------- | | type | string | 是 | 事件类型,目å‰ä»…支æŒ'key'。 | | keyOptions | [KeyOptions](#keyoptions) | 是 | 组åˆé”®é€‰é¡¹ã€‚ | | callback | Callback<KeyOptions> | 是 | 回调函数,当满足æ¡ä»¶çš„ç»„åˆæŒ‰é”®è¾“入事件å‘生时,异æ¥ä¸ŠæŠ¥ç»„åˆæŒ‰é”®æ•°æ®ã€‚ | **示例:** ```js let leftAltKey = 2045; let tabKey = 2049; let keyOptions: inputConsumer.KeyOptions = { preKeys: [ leftAltKey ], finalKey: tabKey, isFinalKeyDown: true, finalKeyDownDuration: 0 }; let callback = (keyOptions: inputConsumer.KeyOptions) => { console.log(`keyOptions: ${JSON.stringify(keyOptions)}`); } try { inputConsumer.on("key", keyOptions, callback); } catch (error) { console.log(`Subscribe failed, error: ${JSON.stringify(error, [`code`, `message`])}`); } ``` ## inputConsumer.off off(type: 'key', keyOptions: KeyOptions, callback?: Callback<KeyOptions>): void å–æ¶ˆè®¢é˜…ç»„åˆæŒ‰é”®ã€‚ **系统能力:** SystemCapability.MultimodalInput.Input.InputConsumer **傿•°ï¼š** | 傿•°å | 类型 | å¿…å¡« | 说明 | | ---------- | -------------------------- | ---- | ------------------------------- | | type | string | 是 | 事件类型,当å‰ä»…æ”¯æŒ 'key'。 | | keyOptions | [KeyOptions](#keyoptions) | 是 | 组åˆé”®é€‰é¡¹ã€‚ | | callback | Callback<KeyOptions> | å¦ | 需è¦å–消订阅的回调函数。若ä¸å¡«ï¼Œåˆ™å–消当å‰åº”用组åˆé”®é€‰é¡¹å·²è®¢é˜…的所有回调函数。 | **示例:** ```js let leftAltKey = 2045; let tabKey = 2049; // å–æ¶ˆè®¢é˜…å•个回调函数 let callback = (keyOptions: inputConsumer.KeyOptions) => { console.log(`keyOptions: ${JSON.stringify(keyOptions)}`); } let keyOption: inputConsumer.KeyOptions = {preKeys: [leftAltKey], finalKey: tabKey, isFinalKeyDown: true, finalKeyDownDuration: 0}; try { inputConsumer.on("key", keyOption, callback); inputConsumer.off("key", keyOption, callback); console.log(`Unsubscribe success`); } catch (error) { console.log(`Execute failed, error: ${JSON.stringify(error, [`code`, `message`])}`); } ``` ```js let leftAltKey = 2045; let tabKey = 2049; // å–æ¶ˆè®¢é˜…所有回调函数 let callback = (keyOptions: inputConsumer.KeyOptions) => { console.log(`keyOptions: ${JSON.stringify(keyOptions)}`); } let keyOption: inputConsumer.KeyOptions = {preKeys: [leftAltKey], finalKey: tabKey, isFinalKeyDown: true, finalKeyDownDuration: 0}; try { inputConsumer.on("key", keyOption, callback); inputConsumer.off("key", keyOption); console.log(`Unsubscribe success`); } catch (error) { console.log(`Execute failed, error: ${JSON.stringify(error, [`code`, `message`])}`); } ``` ## inputConsumer.setShieldStatus<sup>11+</sup> setShieldStatus(shieldMode: ShieldMode, isShield: boolean): void 设置å±è”½æŒ‰é”®æ‹¦æˆªçжæ€ã€‚ **éœ€è¦æƒé™**: ohos.permission.INPUT_CONTROL_DISPATCHING **系统能力:** SystemCapability.MultimodalInput.Input.InputConsumer **傿•°ï¼š** | 傿•°å | 类型 | å¿…å¡« | 说明 | | ---------- | -------------------------- | ---- | ---------------------------------------- | | shieldMode | ShieldMode | 是 | å±è”½ç±»åž‹ï¼Œç›®å‰ä»…支æŒ'FACTORY_MODE'。 | | isShield | boolean | 是 | å±è”½ç±»åž‹ç”Ÿæ•ˆçжæ€ï¼Œtrue代表å±è”½ç±»åž‹ç”Ÿæ•ˆï¼Œflase代表ä¸ç”Ÿæ•ˆã€‚ | **示例:** ```js let FACTORY_MODE = 0; try { inputConsumer.setShieldStatus(FACTORY_MODE,true); console.log(`set shield status success`); } catch (error) { console.log(`set shield status failed, error: ${JSON.stringify(error, [`code`, `message`])}`); } ``` ## inputConsumer.getShieldStatus<sup>11+</sup> getShieldStatus(shieldMode: ShieldMode): boolean 获å–å±è”½æŒ‰é”®æ‹¦æˆªæ˜¯å¦ç”Ÿæ•ˆã€‚ **éœ€è¦æƒé™**: ohos.permission.INPUT_CONTROL_DISPATCHING **系统能力:** SystemCapability.MultimodalInput.Input.InputConsumer **傿•°ï¼š** | 傿•°å | 类型 | å¿…å¡« | 说明 | | ---------- | -------------------------- | ---- | ---------------------------------------- | | shieldMode | ShieldMode | 是 | å±è”½ç±»åž‹ï¼Œç›®å‰ä»…支æŒ'FACTORY_MODE'。 | **返回值:** | 傿•° | 说明 | | ---------- | ---------------------------------------- | | boolean | å±è”½ç±»åž‹ç”Ÿæ•ˆçжæ€ï¼Œtrue代表å±è”½ç±»åž‹ç”Ÿæ•ˆï¼Œflase代表ä¸ç”Ÿæ•ˆã€‚ | **示例:** ```js try { let FACTORY_MODE = 0; let shieldstatusResult:Boolean = inputConsumer.getShieldStatus(FACTORY_MODE); console.log(` get shield status result:${JSON.stringify(shieldstatusResult)}`); } catch (error) { console.log(`Failed to get shield status, error: ${JSON.stringify(error, [`code`, `message`])}`); } ``` ## KeyOptions 组åˆé”®é€‰é¡¹ã€‚ **系统能力:** SystemCapability.MultimodalInput.Input.InputConsumer | åç§° | 类型 | å¯è¯» | å¯å†™ | 说明 | | --------- | ------ | ---- | ---- | ------- | | preKeys | Array\<number> | 是 | å¦ | å‰ç½®æŒ‰é”®é›†åˆï¼Œæ•°é‡èŒƒå›´[0, 4],å‰ç½®æŒ‰é”®æ— 顺åºè¦æ±‚。<br>å¦‚ç»„åˆæŒ‰é”®Ctrl+Alt+Aä¸ï¼ŒCtrl+Alt称为å‰ç½®æŒ‰é”®ã€‚ | | finalKey | number | 是 | å¦ | 最终按键,æ¤é¡¹å¿…填,最终按键触å‘上报回调函数。<br>å¦‚ç»„åˆæŒ‰é”®Ctrl+Alt+Aä¸ï¼ŒA称为最终按键按键。 | | isFinalKeyDown | boolean | 是 | å¦ | 最终按键状æ€ã€‚<br>ture表示按键按下,false表示按键抬起。 | | finalKeyDownDuration | number | 是 | å¦ | æœ€ç»ˆæŒ‰é”®ä¿æŒæŒ‰ä¸‹æŒç»æ—¶é—´ï¼Œå•ä½ä¸ºå¾®ç§’(μs)。<br>当finalKeyDownDuration为0时,立å³è§¦å‘回调函数。<br>当finalKeyDownDuration大于0时,isFinalKeyDown为true,则最终按键按下超过设置时长åŽè§¦å‘回调函数;isFinalKeyDown为false,则最终按键按下到抬起时间å°äºŽè®¾ç½®æ—¶é•¿æ—¶è§¦å‘回调函数。 | | isRepeat<sup>14+</sup> | boolean | 是 | å¦ | 是å¦ä¸ŠæŠ¥é‡å¤çš„æŒ‰é”®äº‹ä»¶ã€‚true表示上报,false表示ä¸ä¸ŠæŠ¥ï¼Œè‹¥ä¸å¡«é»˜è®¤ä¸ºtrue。 | ## shieldMode<sup>11+</sup> å±è”½ç±»åž‹ã€‚ **系统能力:** SystemCapability.MultimodalInput.Input.InputConsumer | åç§° | 类型 | å¯è¯» | å¯å†™ | 说明 | | ------------------------------ | ----------- | ---------------- | ---------------- | ---------------- | | FACTORY_MODE | number | 是 | å¦ | å±è”½ç±»åž‹ï¼Œå±è”½æ‰€æœ‰å¿«æ·é”®ã€‚ |