当前位置: 首页 > news >正文

【HarmonyOS Next】鸿蒙监听手机按键

【HarmonyOS Next】鸿蒙监听手机按键

一、前言

应用开发中我们会遇到监听用户实体按键,或者扩展按键的需求。亦或者是在某些场景下,禁止用户按下某些按键的业务需求。

这两种需求,鸿蒙都提供了对应的监听事件进行处理。
onKeyEvent 默认的按钮监听事件

onKeyPreIme 这是优先级最高的监听回调,别上面多了一个return开关,用于告诉系统监听事件是否再向下传递。
在这里插入图片描述
窗口是第一级接收按钮事件的实体。后续会传递给后三级。

二、解决方案参考

我们以音量实体按键举例,
通过绑定onKeyEvent按键监听来获取按键事件的回调。需要注意的是,绑定了按键事件需要控件获得焦点时,用户去操作按键才会有监听回调。

		// 给控件添加默认聚焦.defaultFocus(true)// 给Button设置onKeyEvent事件.onKeyEvent((event?: KeyEvent) => {})

使用onKeyPreIme屏蔽音量使用下键。

import { KeyCode } from '@kit.InputKit';

struct PreImeEventExample {build() {Column() {Search({placeholder: "Search..."}).width("80%").height("40vp").border({ radius:"20vp" }).onKeyPreIme((event:KeyEvent) => {// 屏蔽音量使用下键if (event.keyCode == KeyCode.KEYCODE_VOLUME_DOWN) {return true;}return false;})}}
}

三、DEMO源码示例:

import { KeyCode } from '@kit.InputKit'

struct KeyClickTestPage { text: string = '' eventType: string = ''build() {Column() {Button('KeyEvent').defaultFocus(true)// 给Button设置onKeyEvent事件.onKeyEvent((event?: KeyEvent) => {if(event){if (event.type === KeyType.Down) {this.eventType = 'Down' // 按钮 按下}if (event.type === KeyType.Up) {this.eventType = 'Up'// 按钮 抬起}// KEYCODE_VOLUME_UP	16	音量增加键// KEYCODE_VOLUME_DOWN	17	音量减小键// KEYCODE_POWER	18	电源键this.text = 'onKeyEvent KeyType:' + this.eventType + '\nkeyCode:' + event.keyCode + '\nkeyText:' + event.keyText + '\nintentionCode:' + event.intentionCode}}).onKeyPreIme((event:KeyEvent) => {// 屏蔽音量使用下键if (event.keyCode == KeyCode.KEYCODE_VOLUME_DOWN) {return true;}this.text = 'onKeyPreIme KeyType:' + this.eventType + '\nkeyCode:' + event.keyCode + '\nkeyText:' + event.keyText + '\nintentionCode:' + event.intentionCodereturn false;})Text(this.text).padding(15)}.height(300).width('100%').padding(35)}
}

扩展资料

点击跳转参考按键Code列表:
在这里插入图片描述

相关文章:

【HarmonyOS Next】鸿蒙监听手机按键

【HarmonyOS Next】鸿蒙监听手机按键 一、前言 应用开发中我们会遇到监听用户实体按键,或者扩展按键的需求。亦或者是在某些场景下,禁止用户按下某些按键的业务需求。 这两种需求,鸿蒙都提供了对应的监听事件进行处理。 onKeyEvent 默认的…...

用Deepseek查询快证API-物流查询-实名认证-企业实名认证

快证API可能是一个提供多种验证和查询服务的平台,包括但不限于企业实名认证、短链接生成、手机号归属地查询、IP地址查询等。以下是根据搜索结果整理的关于快证API的相关信息: ‌企业实名认证API‌: 功能:通过与企业相关数据库进行…...

一个简洁高效的Flask用户管理示例

Flask-Login 是 Flask 的用户管理扩展,提供 用户身份验证、会话管理、权限控制 等功能。 适用于: • 用户登录、登出 • 记住用户(“记住我” 功能) • 限制未登录用户访问某些页面 • 用户会话管理 1. 安装 Flask-Login pi…...

分布式之分布式ID

目录 需求 1. 全局唯一性 2. 高性能 3. 高可用性 4. 可扩展性 5. 有序性 6. 时间相关 7. 长度适中 8. 安全性 9. 分布式一致性 10. 易于集成 常见解决方案 选择依据 数据库号段模式 核心概念 工作流程 优点 缺点 实现示例 优化策略 适用场景 Snowflake雪…...

(萌新入门)如何从起步阶段开始学习STM32 —— 0.碎碎念

目录 前言与导论 碎碎念 所以,我到底需要知道哪些东西呢 从一些基础的概念入手 常见的工具和说法 ST公司 MDK5 (Keil5) CubeMX 如何使用MDK5的一些常用功能 MDK5的一些常见的设置 前言与导论 非常感谢2301_77816627-CSDN博客的提问,他非常好奇…...

边缘计算网关与 PLC:注塑机车间数据互联新变革

在当今数字化浪潮席卷而来的时代,制造业的智能化转型成为了提升竞争力的关键路径。对于注塑机车间而言,如何实现数据的高效采集与互联,进而优化生产流程、提高生产效率,是众多企业亟待解决的问题。而明达MBox20边缘计算网关与 PLC…...

LeetCode刷题---哈希表---347

前 K 个高频元素 347. 前 K 个高频元素 - 力扣(LeetCode) 题目: 给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。 示例 1: 输入: nums [1,1,1,2,2,3], k 2 输出: [1…...

LED灯闪烁实验:实验介绍

文章目录 1 实验目标2 工具链2.1 硬件2.2 软件 3 实验流程 1 实验目标 本实验结合Matlab/Simulink工具链和STM工具链,实现STM32开发板上的LED灯闪烁功能。 2 工具链 2.1 硬件 STM32F103C8T6最小系统板 STM32F103C8T6最小系统板是基于STM32F103C8T6微控制器的开发…...

论文笔记(七十二)Reward Centering(一)

Reward Centering(一) 文章概括摘要1 奖励中心化理论 文章概括 引用: article{naik2024reward,title{Reward Centering},author{Naik, Abhishek and Wan, Yi and Tomar, Manan and Sutton, Richard S},journal{arXiv preprint arXiv:2405.0…...

C#之上位机开发---------C#通信库及WPF的简单实践

〇、上位机,分层架构 界面层 要实现的功能: 展示数据 获取数据 发送数据 数据层 要实现的功能: 转换数据 打包数据 存取数据 通信层 要实现的功能: 打开连接 关闭连接 读取数据 写入数据 实体类 作用: 封装数据…...

使用 pjsua2 开发呼叫机器人,批量拨打号码并播放固定音频

如何使用 pjsua2 开发呼叫机器人,批量拨打号码并播放固定音频 声明 该播客仅提供实现思路,并非实际的方案记录,不要盲目照搬。 pjsua2库的安装会有较多问题,请参考本人之前的播客进行安装 pjsua2。 pjsua2 库具体的 api 说明请参考开源库内的 范例代码。 引言 在今天的…...

从函数到神经网络

所有一切的前提是,你要相信这个世界上的所有逻辑和知识,都可以用一个函数来表示。Functions describe the world ! 比如输入物体的质量和加速度,根据牛顿第二定律,就可以得到物体施加的力,这就是人工智能早期的思路&am…...

用自定义注解实现Excel数据导入中的枚举值校验

使用自定义注解实现Excel数据导入中的枚举值校验 在实际开发中,我们经常需要从Excel文件中导入数据,并且这些数据需要符合一定的规则,比如某些字段的值必须是预定义的枚举值。本文将介绍如何使用自定义注解来实现这一功能,以提高…...

网络安全技术pat实验 网络安全 实验

🍅 点击文末小卡片 ,免费获取网络安全全套资料,资料在手,涨薪更快 网络安全实验3 前言Kali 常用指令工具教程 ettercap 基本使用 一、口令破解 John the ripper 破解 linux 密码l0phtcrack7 破解 windows 密码John 破解 zip 压…...

4、IP查找工具-Angry IP Scanner

在前序文章中,提到了多种IP查找方法,可能回存在不同场景需要使用不同的查找命令,有些不容易记忆,本文将介绍一个比较优秀的IP查找工具,可以应用在连接树莓派或查找IP的其他场景中。供大家参考。 Angry IP Scanner下载…...

1018. 锤子剪刀布 (20)-PAT乙级真题

题目来源&#xff1a; PTA | 程序设计类实验辅助教学平台 代码实现&#xff08;代码一&#xff09;&#xff1a; 这个版本是自己写的&#xff1b;&#xff08;很好理解&#xff0c;但定义了很多变量&#xff09;&#xff0c;有部分样例测试不通过 #include <iostream>…...

MyBatis 中 SqlMapConfig 配置文件详解

精心整理了最新的面试资料&#xff0c;有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 configuration&#xff1a;包裹所有配置标签&#xff0c;是整个配置文件的顶级标签。 properties&#xff1a;属性&#xff0c;该标签可以引入外部配置的属性&#xff…...

复杂项目中的多级WBS应该如何分解?

如果你曾经参与过一个复杂的项目&#xff0c;或许就会感受到&#xff1a; 任务繁杂、责任不清、进度难追踪&#xff0c; 真的是每一位项目经理的噩梦。 而这一切的根源&#xff0c;往往就是缺少一个清晰、有效的任务分解结构—— 没有把庞大、复杂的工作拆解得足够明确&…...

红蓝对抗之常见网络安全事件研判、了解网络安全设备、Webshell入侵检测

文章目录 ​​研判&#xff08;入侵检测&#xff09;​​ ​​设备​​ ​​经典网络​​​​云网络​​ ​​异常HTTP请求​​​​Webshell分析​​ ​​Webshell 的分类​​​​Webshell 的检测​​ ​​主机层面​​​​流量层面​​ ​​附录​​ ​​常见端口漏洞…...

使用 CodeMirror 6 实现插入文本及替换选中文本功能

本文将通过具体的代码示例&#xff0c;详细解释如何在 Vue3 中使用 CodeMirror 6 实现文本插入功能&#xff0c;包括在光标位置插入文本和选中文本插入文本的代码示例&#xff0c;以及这两种插入方式的区别。 1. 只能在光标位置插入文本 1.1 代码示例 const insertTemplate …...

HTML 语义化

目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案&#xff1a; 语义化标签&#xff1a; <header>&#xff1a;页头<nav>&#xff1a;导航<main>&#xff1a;主要内容<article>&#x…...

Xshell远程连接Kali(默认 | 私钥)Note版

前言:xshell远程连接&#xff0c;私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地

借阿里云中企出海大会的东风&#xff0c;以**「云启出海&#xff0c;智联未来&#xff5c;打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办&#xff0c;现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

Qt Http Server模块功能及架构

Qt Http Server 是 Qt 6.0 中引入的一个新模块&#xff0c;它提供了一个轻量级的 HTTP 服务器实现&#xff0c;主要用于构建基于 HTTP 的应用程序和服务。 功能介绍&#xff1a; 主要功能 HTTP服务器功能&#xff1a; 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)

目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关&#xff0…...

短视频矩阵系统文案创作功能开发实践,定制化开发

在短视频行业迅猛发展的当下&#xff0c;企业和个人创作者为了扩大影响力、提升传播效果&#xff0c;纷纷采用短视频矩阵运营策略&#xff0c;同时管理多个平台、多个账号的内容发布。然而&#xff0c;频繁的文案创作需求让运营者疲于应对&#xff0c;如何高效产出高质量文案成…...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...