基于TCP和多线程实现无线鼠标键盘-InputMethodManager

时间:2022-07-05 22:58:18

为了实现无线键盘的功能,使用了InputMethodManager弹出软键盘。

   // 弹出软键盘
public void pop_keyboard(){ imm = (InputMethodManager)ctx.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS); }

同时监听了按键事件onKeyDown。

   public boolean onKeyDown(int keyCode, KeyEvent e){

	   // Log.i("keyCode", String.valueOf(keyCode));
// Log.i("e.getUnicodeChar", String.valueOf(e.getUnicodeChar()));
// Log.i("toString()", e.toString());
// 按下键盘上返回按钮
if (keyCode == KeyEvent.KEYCODE_BACK){ new AlertDialog.Builder(this)
.setTitle("确定退出")
.setMessage("确定退出?")
.setNegativeButton("No",
new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub }
}) .setPositiveButton("Yes",
new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { CloseActivityClass.exitClient(MainActivity.this); } }).show(); }
else
{
send_thread.set_str("k/" + (char)e.getUnicodeChar());
}
return true; }

onKeyDown既监听软键盘的按键,也监听物理键的按键。当发生onKeyDown时,首先判断是否是KeyEvent.KEYCODE_BACK,即是否是按下了物理返回键,如果是,则提示是否退出程序;否则即是按下了软键盘上的键,将按键的字符传递给发送线程发送。

运行效果:

基于TCP和多线程实现无线鼠标键盘-InputMethodManager

点击“键盘”按钮后弹出软键盘:

基于TCP和多线程实现无线鼠标键盘-InputMethodManager

基于TCP和多线程实现无线鼠标键盘-InputMethodManager的更多相关文章

  1. 基于TCP和多线程实现无线鼠标键盘-GestureDetector

    为了实现无线鼠标,需要识别出用户在手机屏幕上的滑动动作,这就需要用到GestureDetector类. 首先是activity_main.xml: <LinearLayout xmlns:and ...

  2. 基于TCP和多线程实现无线鼠标键盘-Socket&lpar;1&rpar;

    把手机作为移动鼠标.键盘使用非常方便,本文将实现这一功能.该应用分为两部分:Windows服务端和Android客户端. 本文源代码的下载地址:http://download.csdn.net/det ...

  3. 基于TCP和多线程实现无线鼠标键盘-Robot

    Windows端收到Android端传递来的键盘或鼠标操作信息以后,需要根据这些信息操作鼠标或键盘,这就需要用到java.awt.Robot类,该类用于控制鼠标或键盘. 在Java主窗体中定义: pu ...

  4. 基于TCP和多线程实现无线鼠标键盘-Socket&lpar;2&rpar;

    在(1)中,实现了Windows服务端与Android客户端的连接,本节将实现在Windows服务端与Android客户端之间传递数据. Android客户端的发送线程SendThread.java代 ...

  5. 基于tcp和多线程的多人聊天室-C语言

    之前在学习关于网络tcp和多线程的编程,学了知识以后不用一下总绝对心虚,于是就编写了一个基于tcp和多线程的多人聊天室. 具体的实现过程: 服务器端:绑定socket对象->设置监听数-> ...

  6. Java Socket实现基于TCP和UDP多线程通信

    一.通过Socket实现TCP编程 1.1 TCP编程 TCP协议是面向连接,可靠的,有序的,以字节流的方式发送数据.基于TCP协议实现网络通信的类有客户端的Socket类和服务器端的ServerSo ...

  7. JAVA基础知识之网络编程——-基于TCP通信的简单聊天室

    下面将基于TCP协议用JAVA写一个非常简单的聊天室程序, 聊天室具有以下功能, 在服务器端,可以接受客户端注册(用户名),可以显示注册成功的账户 在客户端,可以注册一个账号,并用这个账号发送信息 发 ...

  8. &lpar;1&rpar;基于tcp协议的编程模型 &lpar;2&rpar;tcp协议和udp协议的比较 &lpar;3&rpar;基于udp协议的编程模型 &lpar;4&rpar;反射机制

    1.基于tcp协议的编程模型(重中之重)1.1 编程模型服务器: (1)创建ServerSocket类型的对象,并提供端口号: (2)等待客户端的连接请求,调用accept()方法: (3)使用输入输 ...

  9. Java Web 基础(一) 基于TCP的Socket网络编程

    一.Socket简单介绍 Socket通信作为Java网络通讯的基础内容,集中了异常.I/O流模式等众多知识点.学习Socket通信,既能够了解真正的网络通讯原理,也能够增强对I/O流模式的理解. 1 ...

随机推荐

  1. node简单操作mysql的类

    Creative.js 'use strict'; var pool = require('../utils/MysqlUtils'); var util = require('util'); var ...

  2. log4net使用介绍

    log4net是一款开源的日志工具,现已挂在apache基金会下.非常简单灵活,初学者有时会发现log4参照资料配置好,但并不输出日志.这种情况,一般是没有准确定位到配置文件.可参阅第3步. 下载 下 ...

  3. php 压缩函数gzencode gzdeflate gzcompress

    gzencode 默认使用ZLIB_ENCODING_GZIP编码,使用gzip压缩格式,实际上是使用defalte 算法压缩数据,然后加上文件头和adler32校验 gzdeflate 默认使用ZL ...

  4. 关于自定义view--实现自定义水波纹效果

    开发中的东西太多,怕自己忘记了,简单记录一下. 声明:此控件借鉴了大佬的想法,在此感谢大佬提供的支持,我只是把大佬的想法拿出来而已. ok,废话到此结束,看效果: 分析一下,我们可以看到,图中有两个圆 ...

  5. DjangoRestFramework实践笔记

    1.Restful服务的实现方式一共三种:function based view,class based view,viewset+router,这三种实现方式的封装重度依序升高,越往后越适合典型CU ...

  6. TypeScript&colon; type alias 与 interface

    官方文档中有关于两者对比的信息,隐藏在 TypeScript Handbook 中,见 Interfaces vs. Type Aliases 部分. 但因为这一部分很久没更新了,所以其中描述的内容不 ...

  7. vue路由请求 router

    创建一个Router.js文件 // 路由请求//声明一个常量设置路菜单// import Vue from "vue/types/index";import Vue from ' ...

  8. WCF服务无法访问DateTime类型的解决方法

    在WCF服务中,如果entity类含有DateTime类型的字段,那么接口将会被执行两次,从而出现无法访问的情况.如下图所示: 原因是WCF中DateTime无法转换成序列化JSON字符串,DateT ...

  9. JPA 不生成外键

    在用jpa这种orm框架时,有时我们实体对象存在关联关系,但实际的业务场景可能不需要用jpa来控制数据库创建数据表之间的关联约束,这时我们就需要消除掉数据库表与表之间的外键关联.但jpa在处理建立外键 ...

  10. flask小例

    #写一个app.py,处理3个URL: ''' GET / : 首页,返回Home; GET /signin:登录页,显示登录表单; POST /signin: 处理登录表单,显示登录结果. ''' ...