如何实现java在后台监听键盘

如何实现java在后台监听键盘,第1张

*** 作系统,有两个层次,第一个层次是对组装起电脑的各个硬件的驱动程序;第二个是建立在驱动程序上的各项应用程序,比如桌面显示、键盘监听后的处理程序等等。如果想要进行监听键盘,那么就需要获取到所使用 *** 作系统给出的api接口,以windows系统为例,是用c和c++进行编写的,所以他们提供的api都是c和c++的api接口。于是用java的话就需要用到java的native方法,一个Native Method就是一个java调用非java代码的接口。所以3个步骤:

1、引用java native方法。

2、研究windows api。

3、调用windows api中的键盘监听接口,完成程序。

第一步

打开360,单击【安全防护中心】

第二步

选到【七层系统防护】,单击查看状态

第三步

鼠标选到键盘记录防护,单击开启

第四步

单击360的【查杀修复】

第五步

使用【漏洞修复】清除现有的监听病毒

完成

原理:自定义布局的onSizeChanged()方法,在其中增加一个监听接口,当软键盘显示或隐藏使得布局尺寸发生改变,就能捕获到这个事件。

具体方法如下:

首先,在清单文件Manifest.xml中的对应的Activity标签内设置

android:windowSoftInputMode=”adjustResize”

作用是当软键盘显示或隐藏时,该Activity主窗口总是会被调整大小以便留出软键盘的空间。唯有这样才能保证布局触发onSizeChanged()方法。

然后,自定义一个布局,具体是RelativeLayout、LinearLayout或是其它的,根据实际情况而定,自定义的目的是在其onSizeChanged()方法中增加一个监听接口。这里给出一个自定义RelativeLayout布局代码:

public class CustomRelativeLayout extends RelativeLayout {

private OnSizeChangedListener listener

public CustomRelativeLayout(Context context) {

super(context)

}

public CustomRelativeLayout(Context context, AttributeSet attrs) {

super(context, attrs)

}

@Override

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

super.onMeasure(widthMeasureSpec, heightMeasureSpec)

}

@Override

protected void onLayout(boolean changed, int l, int t, int r, int b) {

super.onLayout(changed, l, t, r, b)

}

@Override

protected void onSizeChanged(int w, int h, int oldw, int oldh) {

Log.d(TAG.CUSTOM_VIEW, “onSizeChanged”)

super.onSizeChanged(w, h, oldw, oldh)

if (listener != null) {

listener.onSizeChanged(w, h, oldw, oldh)

}

}

public void setOnSizeChangedListener(OnSizeChangedListener listener) {

this.listener = listener

}

/** * Activity主窗口大小改变时的回调接口(本示例中,等价于软键盘显示隐藏时的回调接口) */

public interface OnSizeChangedListener {

public void onSizeChanged(int w, int h, int oldw, int oldh)

}

}

最后,在程序中使用此接口(xxx.setOnSizeChangedListener(…))即可实现监听键盘隐藏或显示事件。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12050762.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存