首页 > 其他分享 >Android接入数字键盘并通过获取键盘输入的值控制App

Android接入数字键盘并通过获取键盘输入的值控制App

时间:2023-11-07 11:14:42浏览次数:38  
标签:return KeyEvent App keyEvent 数字键盘 listener ACTION Android true

一、概述

  需求:现有一个需求,要求给Android系统接入一个数字键盘,用于方便工人操作(ps:因为触摸屏在特定场景下比键盘低效)

    需要:

      1.Android系统手机/pad需要能够连接数字键盘

      2.Android侧能够获取到手机键盘的按键值

      3.获取到键盘的按键值之后需要做对应的操作,如:模拟点击

二、使用方法

   拿到按键事件:

  1.Activity中

@Override
    public boolean dispatchKeyEvent(KeyEvent event) {//通过监听按键事件分发可以拿到
        if (onSpecialKeyControl(event)) {
            return true;
        }
        return super.dispatchKeyEvent(event);
    }

  2.如果页面中有EditText输入框,则最好使用view.setOnKeyListener接口

 editText.setOnKeyListener(new View.OnKeyListener() {
            @Override
            public boolean onKey(View view, int i, KeyEvent keyEvent) {
                onKeyCodeEvent(keyEvent, listener);
                return false;
            }
        });

  

  3.数字键盘对应的值

public static boolean onKeyCodeEvent(KeyEvent keyEvent, OnSpecialKeyDownListener listener) {
        switch (keyEvent.getKeyCode()) {
            case KeyEvent.KEYCODE_NUMPAD_ADD://+号(157)
                if (listener != null && keyEvent.getAction() != KeyEvent.ACTION_UP) {//如果这个判断不加上,按键会执行两次
                    listener.onAdd(keyEvent);
                }
                return true;
            case KeyEvent.KEYCODE_NUMPAD_SUBTRACT://-减号(163)
                if (listener != null && keyEvent.getAction() != KeyEvent.ACTION_UP) {
                    listener.onSubtract(keyEvent);
                }
                return true;
            case KeyEvent.KEYCODE_NUMPAD_DIVIDE:///除法(154)
                if (listener != null && keyEvent.getAction() != KeyEvent.ACTION_UP) {
                    listener.onDivide(keyEvent);
                }
                return true;
            case KeyEvent.KEYCODE_NUMPAD_MULTIPLY://*(155)
                if (listener != null && keyEvent.getAction() != KeyEvent.ACTION_UP) {
                    listener.onMultiply(keyEvent);
                }
                return true;
            case KeyEvent.KEYCODE_NUMPAD_COMMA://,(159)
                if (listener != null && keyEvent.getAction() != KeyEvent.ACTION_UP) {
                    listener.onComma(keyEvent);
                }
                return true;
            case KeyEvent.KEYCODE_NUMPAD_DOT://.(158)
                if (listener != null && keyEvent.getAction() != KeyEvent.ACTION_UP) {
                    listener.onDot(keyEvent);
                }
                return true;
            case KeyEvent.KEYCODE_NUMPAD_EQUALS://=(161)
                if (listener != null && keyEvent.getAction() != KeyEvent.ACTION_UP) {
                    listener.onEquals(keyEvent);
                }
                return true;
            case KeyEvent.KEYCODE_NUM_LOCK://指示灯(143)
                if (listener != null && keyEvent.getAction() != KeyEvent.ACTION_UP) {
                    listener.onLock(keyEvent);
                }
                return true;
            case KeyEvent.KEYCODE_NUMPAD_ENTER://enter(160)
                if (listener != null && keyEvent.getAction() != KeyEvent.ACTION_UP) {
                    listener.onEnter(keyEvent);
                }
                return true;
        }
        return false;
    }

  

  

标签:return,KeyEvent,App,keyEvent,数字键盘,listener,ACTION,Android,true
From: https://www.cnblogs.com/tony-yang-flutter/p/17814555.html

相关文章

  • APP 备案公钥、签名 MD5、SHA-1、SHA-256获取方法。
    ​公钥和MD5值可以通过苹果开发工具、Keytool、appuploder等多种工具获取,最简单的就是以appuploader为例。 1.下载appuploader工具,点击此处下载appuploader 工具。    ​2.下载完成后,解压压缩包,双击appuploder运行。    ​ 3.运行后,在appuploder......
  • App备案-iOS云管理式证书 Distribution Managed 公钥及证书SHA-1指纹的获取方法
    ​ 根据近日工业和信息化部发布的《工业和信息化部关于开展移动互联网应用程序备案工作的通知》,相信不少要进行IOS平台App备案的朋友遇到了一个问题,就是apple不提供云管理式证书的下载,也就无法获取公钥及证书SHA-1指纹。   ​ 已经上架的应用不想重新打包发布的话。......
  • uni app中建立公共方法utils
    uniapp中建立公共方法utils有一些公用的方法可以抽出来的,像日期格式化之类的步骤:1.建立文件common/utils.js文件 /***返回欢迎文本*@paramstringname姓名*/exportconsttestFun=function(name){return"hello:"+name;}    2.main.js......
  • 就今年这行情,成为Android程序员还有发展前景吗?
    前言做为一名IT行业从业者,我认为IT行业饱和这个说法是不准确的,应该叫低端IT业趋于饱和,而技术深入的IT领域人才远远未达到饱和,甚至这样的人才还很稀缺。近些年计算机相关专业成为了热门专业,大家都知道这个行业赚钱,于是蜂拥而至。认为学了计算机就能进中大厂,其实能进去的都是少部分人......
  • 【Azure Function App】解决Function App For Container 遇见ServiceUnavailable的异
    问题描述在使用Terraform创建FunctionApp后,部署函数时候遇见 ServiceUnavailable(BadRequest-- Encounteredanerror(ServiceUnavailable)fromhostruntime.)问题。查看FunctionApp的高级工具(Kudu)站点和默认站点,均出现ApplicationError页面。 问题解答查看Function......
  • 【Azure Function App】解决Function App For Container 遇见ServiceUnavailable的异
    问题描述在使用Terraform创建FunctionApp后,部署函数时候遇见 ServiceUnavailable(BadRequest-- Encounteredanerror(ServiceUnavailable)fromhostruntime.)问题。查看FunctionApp的高级工具(Kudu)站点和默认站点,均出现ApplicationError页面。 问题解答查看F......
  • 水果连连看,Android 小游戏开发
    A.项目描述"水果连连看"是一款经典的休闲益智小游戏。游戏的目标是通过连接相同的水果图标来消除它们,最终清空整个游戏界面。它以其简单易懂的规则和有趣的玩法而受到许多玩家的喜爱。让我们来梳理一下这款小游戏的功能需求。游戏规则和目标:游戏采用经典的连连看玩法,玩家需要在限......
  • uniApp:使用vue3+Vite4+pinia+sass技术栈构建(02)-封装api请求
    前言在纯vue3开发的时候,使用axios进行api请求,但在uniapp中还需要安装axios的适配器uniapp-axios-adapter,否则小程序或者app请求不兼容。文档地址uniapp-axios-adapter-DCloud插件市场但在这里我们不使用axios,而是使用uniapp提供的请求方法uni.request进行封装。uni.request方......
  • 短视频小程序app开发微视频网红短剧分销付费开发
      短视频小程序已成为网民娱乐消遣的工具,用户对内容的追求,都是在短剧平台上实现的,开发一款短剧小程序视频软件。该小程序软件是针对网红短剧,小程序软件是分销的付费形式,为用户提供更多优质内容。  短视频小程序软件主要功能包括:  1.随时都可以在手机上刷视频,无需下载......
  • 影视短剧app带分销支付小程序APP开发
      移动端软件的应用是目前使用群体最多的,影视短剧小程序软件作为一款娱乐性的软件,它正在逐步的成为人们日常休闲的重要工具。  一、设计理念  移动端影视小程序软件的核心点,注重的就是小程序的易用性,方便,带给用户的价值,让用户找到自己想要的内容。通过分销的功能,方便......