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

news2025/1/19 20:23:19

输入设备

输入设备管理模块,用于监听输入设备连接、断开和变化,并查看输入设备相关信息。比如监听鼠标插拔,并获取鼠标的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.coloradmin.cn/o/1880928.html

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

相关文章

Todesk远程Ubuntu桌面系统100%但是进不去桌面

1、报错情况 如下图所示&#xff0c;用Todesk远程Ubuntu桌面&#xff0c;看到连接100%了&#xff0c;但是进不去桌面 ubuntu系统看起来的话&#xff0c;已经像被远程成功了 我就首先把todesk卸载重新安装了&#xff0c;后面发现还是这样&#xff0c;于是我就找客服去问了&…

数据结构笔记第2篇:单向链表

1、链表的概念及结构 概念&#xff1a;链表是一种物理结构上非连续、非顺序的存储结构&#xff0c;数据结构的逻辑顺序是通过链表中的指针链接次序实现的。 就像图中的小火车&#xff0c;每节车厢都是一个节点&#xff0c;每个节点都存储着一个数据。它们本身并不是顺序存储的…

python自动化办公之PyPDF2

用到的库&#xff1a;PyPDF2 实现效果&#xff1a;打开pdf文件&#xff0c;把每一页的内容读出来 代码&#xff1a; import PyPDF2 # 打开pdf文件 fileopen(friday.pdf,rb) # 创建pdf文件阅读器对象 readerPyPDF2.PdfReader(file) # 获取pdf文件的总页数 total_pageslen(rea…

SonicSense:声学振动丰富机器人的物体感知能力

在通过声学振动进行物体感知方面&#xff0c;尽管以往的研究已经取得了一些有希望的结果&#xff0c;但目前的解决方案仍然受限于几个方面。首先&#xff0c;大多数现有研究集中在只有少数&#xff08;N < 5&#xff09;基本物体的受限设置上。这些物体通常具有均质材料组成…

抖音直播自动点赞脚本:让点赞变得简单

抖音直播自动点赞脚本&#xff1a;让点赞变得简单 简介 点赞是社交媒体上表达喜爱的一种方式&#xff0c;尤其在抖音这样的平台上&#xff0c;点赞不仅能够增加主播的人气&#xff0c;还能鼓励他们创作更多优质内容。然而&#xff0c;手动点赞往往既耗时又费力。为了解决这个…

远程连接mysql等支持网络服务的数据库

1.ubuntu服务器上的mysql用datagrip连接需要专门去给mysql在服务器上运行的端口开放安全组吗 在使用 DataGrip 或任何其他数据库管理工具远程连接到 Ubuntu 服务器上的 MySQL 时&#xff0c;确实需要确保服务器的防火墙和安全组设置允许从你的 IP 地址访问 MySQL 所运行的端口&…

在Linux (Ubuntu 16) 下安装LabVIEW

用户尝试在Ubuntu 16操作系统上安装LabVIEW&#xff0c;但找不到合适的安装文件来支持Ubuntu。已经下载了运行时文件&#xff0c;并尝试将.rpm包转换为.deb包并安装在Ubuntu上。然而&#xff0c;安装完成后&#xff0c;没有在应用程序中看到LabVIEW的图标。 用户希望能够在Ubu…

Apache Ranger 2.4.0 集成Hive 3.x(Kerbos)

一、解压tar包 tar zxvf ranger-2.4.0-hive-plugin.tar.gz 二、修改install.propertis POLICY_MGR_URLhttp://localhost:6080REPOSITORY_NAMEhive_repoCOMPONENT_INSTALL_DIR_NAME/BigData/run/hiveCUSTOM_USERhadoop 三、进行enable [roottv3-hadoop-01 ranger-2.4.0-hive…

【SGX系列教程】(八)Intel-SGX 官方示例分析(SampleCode)——Seal Unseal

文章目录 一.Seal Unseal原理介绍1.1 Intel SGX supported Sealing Policies 二.源码分析2.1 README2.2 重点代码分析2.2.1 主要代码模块交互流程分析2.2.2 App/App.cpp2.2.3 Enclave_Seal/Enclave_Seal.cpp2.2.4 Enclave_Unseal/Enclave_Unseal.cpp 2.3 总结 三.参考文献四.感…

Debugging using Visual Studio Code

One of the key features of Visual Studio Code is its great debugging support. VS Code’s built-in debugger helps accelerate your edit, compile, and debug loop. Debugger extensions VS Code 内置了对 Node.js 运行时的调试支持,可以调试 JavaScript、TypeScript…

HDFS学习

3.5 HDFS存储原理 3.5.1 冗余数据保存 作为一个分布式文件系统&#xff0c;为了保证系统的容错性和可用性&#xff0c;HDFS采用了多副本方式对数据进行冗余存储&#xff0c;通常一个数据块的多个副本会被分布到不同的数据节点上。 如图所示&#xff0c;数据块1被分别存放到…

【IVI】CarService启动-Android13

【IVI】CarService启动-Android13 1、CarServiceImpl启动概述2、简要时序图 1、CarServiceImpl启动概述 【IVI】CarService启动&#xff1a; CarServiceHelperService中绑定CarServiceICarImpl初始化各种服务 packages/services/Car/README.md 2、简要时序图

RabbitMQ-交换机的类型以及流程图练习-01

自己的飞书文档:‌‍‬‍‬‍​‍‬​⁠‍​​​‌⁠​​‬‍​​​‬‬‌​‌‌​​&#xfeff;​​​​&#xfeff;‍​‍​‌&#xfeff;⁠‬&#xfeff;&#xfeff;&#xfeff;​RabbitMQ的流程图和作业 - 飞书云文档 (feishu.cn) 作业 图片一张 画rabbit-mq 消息发…

imx6ull/linux应用编程学习(6)jpeg和png的图片显示

1.JPEG图片显示 JPEG&#xff08;Joint Photographic Experts Group&#xff09;是由国际标准组织为静态图像所建立的第一个国际数字图像压缩标准&#xff0c;也是至今一直在使用的、应用最广的图像压缩标准。JPEG 由于可以提供有损压缩&#xff0c;因此压缩比可以达到其他传统…

sqlserver开启CDC

1、背景 由于需要学习flink cdc&#xff0c;并且数据选择sqlserver&#xff0c;所以这里记录sqlserver的cdc开启操作步骤。 2、基础前提 官方介绍地址&#xff1a;https://learn.microsoft.com/zh-cn/sql/relational-databases/track-changes/enable-and-disable-change-dat…

快递物流仓库管理系统java项目springboot和vue的前后端分离系统java课程设计java毕业设计

文章目录 快递物流仓库管理系统一、项目演示二、项目介绍三、部分功能截图四、部分代码展示五、底部获取项目源码&#xff08;9.9&#xffe5;带走&#xff09; 快递物流仓库管理系统 一、项目演示 快递物流仓库管理系统 二、项目介绍 语言: Java 数据库&#xff1a;MySQL 前…

论文阅读《U-KAN Makes Strong Backbone for MedicalImage Segmentation and Generation》

Abstract U-Net 已成为图像分割和扩散概率模型等各种视觉应用的基石。虽然通过结合transformer或 MLP&#xff0c;U-Net 已经引入了许多创新设计和改进&#xff0c;但仍然局限于线性建模模式&#xff0c;而且可解释性不足。为了应对这些挑战&#xff0c;我们的直觉受到了 Kolm…

PotPlayer安装及高分辨率设置

第1步&#xff1a; 下载安装PotPlayer软件 PotPlayer链接&#xff1a;https://pan.baidu.com/s/1hW168dJrLBonUnpLI6F3qQ 提取码&#xff1a;z8xd 第2步&#xff1a; 下载插件&#xff0c;选择系统对应的位数进行运行&#xff0c;该文件不能删除&#xff0c;删除后将失效。 …

云计算HCIE+RHCE学员的学习分享

大一下学期&#xff0c;我从学长嘴里了解到誉天教育&#xff0c;当时准备考RHCE&#xff0c;我也了解了很多培训机构&#xff0c;然后学长强烈给我推荐誉天&#xff0c;我就在誉天报名了RHCE的课程。 通过杨峰老师的教学&#xff0c;我学到了许多Linux知识&#xff0c;也了解了…

【87 backtrader期权策略】基于50ETF期权的covered-call-strategy

前段时间有读者希望能够实现一个期权策略的模板,这段时间通过akshare下载了期权的数据,并进行了清洗,写了一个最简单的期权策略,供大家参考。 策略逻辑: 这是151 trading strategies中的一个期权策略。 买入50ETF基金,手续费按照万分之二计算,一直持有卖出一个最远期的…