android软键盘不可见问题

 

调试过程:

输入法不可见(软键盘不可见),一般情况下,是在外接物理鼠标键盘时出现,

 

我们初步可以判断的方式是用系统自带的LatinIME输入法来测试

 

一般来说,我们通过dumpsys SurfaceFlinger可以查看图层,会看到:InputMethod

 

证明输入法程序是没问题的,只是没有画面,

 

另外一个我们可以使用hierarchyviewer.bat来查看当前图层,会发现输入法是存在的,只是布局没有,那么我们就可以更加放心的确认是一些配置的问题了。

 

该输入法的程序在:/packages/inputmethods/LatinIME路径下

 

我们可以通过修改这里的程序,来看看,通过加打印的方式看看具体的问题是什么

 

通过修改:

LatinIME.java中函数

public boolean onEvaluateInputViewShown()

 

直接返回return ture;

 

当然,我们可以通过打印看看信息,在上面的函数中增加打印

Configuration config = getResources().getConfiguration();

 

把config.keyboard和config.hardKeyboardHidden中的值打印出来,你一般有所发现

 

 

直接返回return true后,发现软键盘可以出现了,则我们的问题就可以直接定位了,是由于物理键盘插入的缘由,当然,有些方案厂给的SDK或许本身设置的问题,一样导致这个现象

 

最终我们修改方案:

WindowManagerService.java

位于:/frameworks/base/services/core/java/com/android/server/wm/

void computeScreenConfigurationLocked(Configuration config)

 

if (device.getKeyboardType() == InputDevice.KEYBOARD_TYPE_ALPHABETIC) {

                    config.keyboard = Configuration.KEYBOARD_QWERTY;

                    keyboardPresence |= presenceFlag;

                }

把其中的config.keyboard = Configuration.KEYBOARD_QWERTY;

修改成

config.keyboard = Configuration. KEYBOARD_NOKEYS;

 

修改后,重新编译

烧录系统后,则会发现输入法可见了。

 

祝您好运

所有问题都不是问题,只要我们细心去查

谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值