鸿蒙开发设备管理:【@ohos.multimodalInput.inputDevice (输入设备)】

输入设备

输入设备管理模块,用于监听输入设备连接、断开和变化,并查看输入设备相关信息。比如监听鼠标插拔,并获取鼠标的id、name和指针移动速度等信息。

说明
本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

import inputDevice from '@ohos.multimodalInput.inputDevice';

inputDevice.on9+

on(type: “change”, listener: Callback): void

监听输入设备的热插拔事件。

系统能力:SystemCapability.MultimodalInput.Input.InputDevice

参数

参数类型必填说明
typestring输入设备的事件类型。
listenerCallback<[DeviceListener]>可上报的输入设备事件。

示例

let isPhysicalKeyboardExist = true;
inputDevice.on("change", (data) => {console.log("type: " + data.type + ", deviceId: " + data.deviceId);inputDevice.getKeyboardType(data.deviceId, (err, ret) => {console.log("The keyboard type of the device is: " + ret);if (ret == inputDevice.KeyboardType.ALPHABETIC_KEYBOARD && data.type == 'add') {// 监听物理键盘已连接。isPhysicalKeyboardExist = true;} else if (ret == inputDevice.KeyboardType.ALPHABETIC_KEYBOARD && data.type == 'remove') {// 监听物理键盘已断开。isPhysicalKeyboardExist = false;}});
});
// 根据isPhysicalKeyboardExist的值决定软键盘是否弹出。

inputDevice.off9+

off(type: “change”, listener?: Callback): void

取消监听输入设备的热插拔事件。

系统能力:SystemCapability.MultimodalInput.Input.InputDevice

参数

参数类型必填说明
typestring输入设备的事件类型。
listenerCallback<[DeviceListener]>可上报的输入设备事件。

示例

function listener(data) {console.log("type: " + data.type + ", deviceId: " + data.deviceId);
}// 单独取消listener的监听。
inputDevice.off("change", listener);// 取消所有监听。
inputDevice.off("change");
// 取消监听后,软键盘默认都弹出。

inputDevice.getDeviceIds

getDeviceIds(callback: AsyncCallback<Array>): void

获取所有输入设备的id列表,使用callback方式作为异步方法。

系统能力:SystemCapability.MultimodalInput.Input.InputDevice

参数

参数类型必填说明
callbackAsyncCallback<Array>回调函数。

示例

inputDevice.getDeviceIds((ids)=>{console.log("The device ID list is: " + ids);
});

inputDevice.getDeviceIds

getDeviceIds(): Promise<Array>

获取所有输入设备的id列表,使用Promise方式作为异步方法。

系统能力:SystemCapability.MultimodalInput.Input.InputDevice

返回值

参数说明
Promise<Array>Promise实例,用于异步获取结果。

示例

inputDevice.getDeviceIds().then((ids)=>{console.log("The device ID list is: " + ids);
});

inputDevice.getDevice

getDevice(deviceId: number, callback: AsyncCallback): void

获取输入设备的描述信息,使用callback方式作为异步方法。

系统能力:SystemCapability.MultimodalInput.Input.InputDevice

参数

参数类型必填说明
deviceIdnumber需要获取信息的设备id。
callbackAsyncCallback<[InputDeviceData]>回调函数,异步返回InputDeviceData对象。

示例

// 示例获取设备id为1的设备name信息。
inputDevice.getDevice(1, (inputDevice)=>{console.log("The device name is: " + inputDevice.name);
});

inputDevice.getDevice

getDevice(deviceId: number): Promise

获取输入设备的描述信息,使用Promise方式作为异步方法。

系统能力:SystemCapability.MultimodalInput.Input.InputDevice

参数

参数类型必填说明
deviceIdnumber需要获取信息的设备id。

返回值

参数说明
Promise<[InputDeviceData]>Promise实例,用于异步获取结果。

示例

// 示例获取设备id为1的设备name信息。
inputDevice.getDevice(1).then((inputDevice)=>{console.log("The device name is: " + inputDevice.name);
});

inputDevice.supportKeys9+

supportKeys(deviceId: number, keys: Array, callback: Callback<Array>): void

获取输入设备支持的键码值,使用callback方式作为异步方法。

系统能力:SystemCapability.MultimodalInput.Input.InputDevice

参数

参数类型必填说明
deviceIdnumber输入设备的唯一标识,同一个物理设备反复插拔,其设备id会发生变化。
keysArray需要查询的键码值,最多支持5个按键查询。
callbackCallback<Array>回调函数,异步返回查询结果。

示例

// 示例查询id为1的设备对于17、22和2055按键的支持情况。
inputDevice.supportKeys(1, [17, 22, 2055], (ret)=>{console.log("The query result is as follows: " + ret);
});

inputDevice.supportKeys9+

supportKeys(deviceId: number, keys: Array): Promise<Array>

获取输入设备支持的键码值,使用Promise方式作为异步方法。

系统能力:SystemCapability.MultimodalInput.Input.InputDevice

参数

参数类型必填说明
deviceIdnumber输入设备的唯一标识,同一个物理设备反复插拔,其设备id会发生变化。
keysArray需要查询的键码值,最多支持5个按键查询。

返回值

参数说明
Promise<Array>Promise实例,用于异步获取结果。

示例

// 示例查询id为1的设备对于17、22和2055按键的支持情况。
inputDevice.supportKeys(1, [17, 22, 2055]).then((ret)=>{console.log("The query result is as follows: " + ret);
})

inputDevice.getKeyboardType9+

getKeyboardType(deviceId: number, callback: AsyncCallback): void

查询输入设备的键盘类型,使用callback方式作为异步方法。

系统能力:SystemCapability.MultimodalInput.Input.InputDevice

参数

参数类型必填说明
deviceIdnumber输入设备的唯一标识,同一个物理设备反复插拔,其设备id会发生变化。
callbackAsyncCallback<[KeyboardType]>回调函数,异步返回查询结果。

示例

// 示例查询设备id为1的设备键盘类型。
inputDevice.getKeyboardType(1, (ret)=>{console.log("The keyboard type of the device is: " + ret);
});

inputDevice.getKeyboardType9+

getKeyboardType(deviceId: number): Promise

查询输入设备的键盘类型,使用Promise方式作为异步方法。

系统能力:SystemCapability.MultimodalInput.Input.InputDevice

返回值

参数说明
Promise<[KeyboardType]>Promise实例,用于异步获取结果。

示例

// 示例查询设备id为1的设备键盘类型。
inputDevice.getKeyboardType(1).then((ret)=>{console.log("The keyboard type of the device is: " + ret);
})

DeviceListener9+

输入设备的描述信息。

系统能力:以下各项对应的系统能力均为SystemCapability.MultimodalInput.Input.InputDevice

名称参数类型说明
type[ChangedType]表示输入设备插入或者移除。
deviceIdnumber输入设备的唯一标识,同一个物理设备反复插拔,其设备id会发生变化。

InputDeviceData

输入设备的描述信息。

系统能力:以下各项对应的系统能力均为SystemCapability.MultimodalInput.Input.InputDevice

名称参数类型说明
idnumber输入设备的唯一标识,同一个物理设备反复插拔,其设备id会发生变化。
namestring输入设备的名字。
sourcesArray<[SourceType]>输入设备支持的源类型。比如有的键盘上附带触摸板,则此设备有keyboard和touchpad两种输入源。
axisRangesArray<[AxisRanges]>输入设备的轴信息。
bus9+number输入设备的总线类型。
product9+number输入设备的产品信息。
vendor9+number输入设备的厂商信息。
version9+number输入设备的版本信息。
phys9+string输入设备的物理地址。
uniq9+string输入设备的唯一标识。

AxisType9+

输入设备的轴类型。

系统能力:以下各项对应的系统能力均为SystemCapability.MultimodalInput.Input.InputDevice

名称参数类型说明
touchMajorstring表示touchMajor轴。
touchMinorstring表示touchMinor轴。
toolMinorstring表示toolMinor轴。
toolMajorstring表示toolMajor轴。
orientationstring表示orientation轴。
pressurestring表示pressure轴。
xstring表示x轴。
ystring表示y轴。
NULLstring无。

AxisRange

输入设备的轴信息。

系统能力: 以下各项对应的系统能力均为SystemCapability.MultimodalInput.Input.InputDevice

名称参数类型说明
source[SourceType]轴的输入源类型。
axis[AxisType]轴的类型。
maxnumber轴的最大值。
minnumber轴的最小值。
fuzz9+number轴的模糊值。
flat9+number轴的基准值。
resolution9+number轴的分辨率。

SourceType

定义这个轴的输入源类型。比如鼠标设备可上报x轴事件,则x轴的源就是鼠标。

系统能力:以下各项对应的系统能力均为SystemCapability.MultimodalInput.Input.InputDevice

名称参数类型说明
keyboardstring表示输入设备是键盘。
touchscreenstring表示输入设备是触摸屏。
mousestring表示输入设备是鼠标。
trackballstring表示输入设备是轨迹球。
touchpadstring表示输入设备是触摸板。
joystickstring表示输入设备是操纵杆。

ChangedType

定义监听设备热插拔事件。

系统能力:以下各项对应的系统能力均为SystemCapability.MultimodalInput.Input.InputDevice

名称参数类型说明
addstring表示输入设备插入。
removestring表示输入设备移除。

KeyboardType9+

定义键盘输入设备的类型。
在这里插入图片描述

系统能力:以下各项对应的系统能力均为SystemCapability.MultimodalInput.Input.InputDevice

名称参数类型说明
NONEnumber0表示无按键设备。
UNKNOWNnumber1表示未知按键设备。
ALPHABETIC_KEYBOARDnumber2表示全键盘设备。
DIGITAL_KEYBOARDnumber3表示小键盘设备。
HANDWRITING_PENnumber4表示手写笔设备。
REMOTE_CONTROLnumber5表示遥控器设备。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/38224.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【算法专题--栈】用队列实现栈 -- 高频面试题(图文详解,小白一看就懂!!)

目录 一、前言 二、题目描述 三、解题方法 ⭐两个队列实现栈 &#x1f95d;解题思路 &#x1f34d;案例图解 ⭐用一个队列实现栈 &#x1f347;解题思路 &#x1f34d;案例图解 四、总结与提炼 五、共勉 一、前言 用队列实现栈 这道题&#xff0c;可以说是--栈…

002-基于Sklearn的机器学习入门:回归分析(上)

本节及后续章节将介绍机器学习中的几种经典回归算法&#xff0c;所选方法都在Sklearn库中聚类模块有具体实现。本节为上篇&#xff0c;将介绍基础的线性回归方法&#xff0c;包括线性回归、逻辑回归、多项式回归和岭回归等。 2.1 回归分析概述 回归&#xff08;Regression&…

《昇思25天学习打卡营第14天 | 昇思MindSpore基于MindNLP+MusicGen生成自己的个性化音乐》

14天 本节学了基于MindNLPMusicGen生成自己的个性化音乐。 MusicGen是来自Meta AI的Jade Copet等人提出的基于单个语言模型的音乐生成模型&#xff0c;能够根据文本描述或音频提示生成高质量的音乐样本。 MusicGen模型基于Transformer结构&#xff0c;可以分解为三个不同的阶段…

⭐ UI自动化工具轻松实现微信消息提醒 ⚡

&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f; 演示效果 &#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f; &#x1f605;&#x1f605;&#x1f605;&#x1f605;&#x1f605;&#x1f605; Python安装…

STM32 SWD烧写

最小电路 stm32f103x 内部已经集成了振荡电路&#xff0c;可以省略&#xff1b;rst引脚电路&#xff0c;可以省略&#xff0c;boot0,boot1不需要设置 正常烧录 -------------------------------------------------------------------STM32CubeProgrammer v2.9.0 …

使用 go-control-plane 自定义服务网格控制面

写在前面 阅读本文需要最起码了解envoy相关的概念 本文只是一个类似于demo的测试&#xff0c;只为了学习istio&#xff0c;更好的理解istio中的控制面和数据面&#xff08;pilot -> proxy&#xff09;是如何交互的&#xff0c;下图的蓝色虚线 先说go-control-plane是什么…

nginx 1024 worker_connections are not enough while connecting to upstream

现象 请求api响应慢&#xff0c;甚至出现504 gateway timeout&#xff0c;重启后端服务不能恢复&#xff0c;但重启nginx可以恢复。 解决方案 worker_connections使用了默认值 1024&#xff0c;当流量增长时&#xff0c;导致连接不够 在nginx.conf中修改连接数就可以了&…

小白学python(第四天)顺序与分支篇

这几天因为个人原因&#xff0c;python篇会更新比较慢&#xff0c;还望大家谅解&#xff0c;那么废话不多说&#xff0c;我们现在就进入正题 顺序篇 这个没啥好说的&#xff0c;就是自上而下&#xff0c;依次执行 分支篇 条件&#xff08;if&#xff09;语句语法格式&#…

【C++】————string基础用法及部分函数底层实现

作者主页&#xff1a; 作者主页 本篇博客专栏&#xff1a;C 创作时间 &#xff1a;2024年6月30日 前言&#xff1a; 本文主要介绍STL容器之一 ---- string&#xff0c;在学习C的过程中&#xff0c;我们要将C视为一个语言联邦&#xff08;摘录于Effective C 条款一&#x…

实验6 形态学图像处理

1. 实验目的 ①掌握数字图像处理中&#xff0c;形态学方法的基本思想&#xff1b; ②掌握膨胀、腐蚀、开运算、闭运算等形态学基本运算方法&#xff1b; ③能够利用形态学基本运算方法&#xff0c;编程实现图像去噪&#xff0c;边界提取等功能。 2. 实验内容 ①调用Matlab /…

PMBOK® 第六版 结束项目或阶段

目录 读后感—PMBOK第六版 目录 不论是阶段的收尾还是项目整体的收尾&#xff0c;都应是令人振奋的事。然而&#xff0c;在实际生活中&#xff0c;收尾工作却相当艰难。会遭遇负责人调离、换任&#xff0c;导致不再需要已购产品&#xff1b;项目收尾时对照招标文件或合同&…

51-61 CVPR 2024 最佳论文 | Rich Human Feedback for Text-to-Image Generation

23年12月&#xff0c;加州大学圣地亚哥、谷歌研究院、南加州大学、剑桥大学联合发布Rich Human Feedback for Text-to-Image Generation论文。 作者受大模型中RLHF技术的启发&#xff0c;用人类反馈来改进Stable Diffusion等文生图模型&#xff0c;提出了先进的RichHF-18K数据…

足球虚拟越位线技术FIFA OT(一)

此系列文章用于记录和回顾开发越位线系统的过程&#xff0c;平时工作较忙&#xff0c;有空时更新。 越位线技术 越位技术已被用于图形化分析足球中潜在的越位情况。 自 2018 年将视频助理裁判 &#xff08;VAR&#xff09; 引入比赛规则以来&#xff0c;人们越来越关注准确确…

完美世界|单机版合集(共22个版本)

前言 我是研究单机的老罗&#xff0c;今天给大家带来的是完美世界的单机版合集&#xff0c;一共22个版本。本人亲自测试了一个版本&#xff0c;运行视频如下&#xff1a; 完美世界|单机版合集 先看所有的版本的文件&#xff0c;文件比较大&#xff0c;准备好空间&#xff0c;差…

Transformer详解encoder

目录 1. Input Embedding 2. Positional Encoding 3. Multi-Head Attention 4. Add & Norm 5. Feedforward Add & Norm 6.代码展示 &#xff08;1&#xff09;layer_norm &#xff08;2&#xff09;encoder_layer1 最近刚好梳理了下transformer&#xff0c;今…

【VScode】常用配置

1.indenticator 增加白色竖条&#xff0c;显示方法范围 2.Git Graph 给git变换分支增添颜色区分 3.Vue 系列 vue 系列&#xff1a;给纯白色代码添加 颜色区分 3.eslint eslint警告&#xff0c;比如{ } 只写了半个会标红提示错误 等错误信息提示 需要配置js等页面 非下…

1.linux操作系统CPU负载

目录 概述CPU平均负载查看平均负载结束 概述 CPU 使用率 和CPU 平均使用率。 CPU平均负载 单位时间内系统处于 [可运行状态] 和 [不可中断状态] 的平均进程数&#xff0c;就是平均活跃进程数&#xff0c;和CPU使用率并没有直接关系 可运行状态 正在使用CPU或者正等待CPU的进…

【Elasticsearch】linux使用supervisor常驻Elasticsearch,centos6.10安装 supervisor

背景&#xff1a; linux服务器&#xff0c;CentOS 6操作系统&#xff0c;默认版本python2.6.6&#xff0c;避免安装过多的依赖不升级python 在网上查的资料python2.6.6兼容supervisor版本 3.1.3 安装supervisor 手动在python官网下载supervisor&#xff0c;并上传到服务器 下…

Linux_动、静态库

目录 一、静态库 1、静态库的概念 2、制作静态库的指令 3、制作静态库 4、链接静态库 二、动态库 1、动态库的概念 2、制作动态库的指令 3、制作动态库 4、链接动态库 5、动态库的加载 三、静态库与动态库的区别 结语 前言&#xff1a; 在Linux下大部分程序进…

【JavaEE】多线程代码案例(1)

&#x1f38f;&#x1f38f;&#x1f38f;个人主页&#x1f38f;&#x1f38f;&#x1f38f; &#x1f38f;&#x1f38f;&#x1f38f;JavaEE专栏&#x1f38f;&#x1f38f;&#x1f38f; &#x1f38f;&#x1f38f;&#x1f38f;上一篇文章&#xff1a;多线程&#xff08;2…