关于可可输入法在Titan pocket触摸滑动操作支持问题
大概半个月前,在拿到Titan Pocket
第一时间我就测试键盘滑动功能,发现并不起作用,事件没有传递到输入法,于是我就在设置界面对该机型在触摸选项进行了屏蔽,之后我还深入跟踪了一下这个情况,事件分发逻辑在Java
层是如下传递的,底层通过MessageQueue
传递过来的,大致如下
MessageQueue->nativePollOnce
InputEventReceiver->DispatchInputEvent
IInputMethodSessionWrapper->ImeInputEventReceiver->onInputEvent
AbstractInputMethodService->AbstractInputMethodSessionImpl->dispatchGenericMotionEvent
InputMethodService->onGenericMotionEvent
发现输入法在激活状态并不能接收到键盘滑动事件,也就是onGenericMotionEvent
是没有被调用的,但是在隐藏输入法后反倒能接受到事件,这让我很诧异,正确的方式应该跟黑莓一样,先把事件交给输入法,如果输入法不处理这个事件再交给当前应用,于是这个功能就暂停了。
当时今天有用户反馈美版的可以滑动翻页,看到视频我是挺惊讶的,固件版本跟我的国际版是一样的,于是我是各种配置我的国际版,在翻屏助手里各种尝试,仍然不行,我又拿来我的国行进行了一顿操作,突然发现输入法也能滑动翻页了,但是我并没有搞清楚是如何触发的,太诡异了,不过至少我获得了物理键盘的宽高,调整了一下代码能飞字了,但是国际版折腾了半天还是不行,下个版本我要放开那几项设置了。
2021-11-29 21:50:40 星期一
好消息!!!
经过两个小时的对比,我终于找到原因,只要把输入法的软键盘关闭就能接受到物理键盘滑动触摸事件了!!!
下个版本进行适配,就可以飞字了!!!
2021-12-01 14:16:10 星期三
昨晚上经过四五个小时的滑动键盘适配处理,发现Titan Pocket键盘感应度差黑莓键盘很远,经常出现连续滑动感应不到,asd我来回搓了好几次都没反应,右侧边缘更糟糕,看来不能愉快的飞字了,当然毕竟价格比黑莓低很多,一分钱一分货。
高手就是高手!太厉害了!
全键盘的福音!
有个小小的建议 英文输入法状态下,能否按一次ALT可以输入一个键盘小字符?中文输入法状态下,能否按一次SHIFT输入一个大写英文字符?
谢谢!!
目前是在英文状态下按一次ALT是输入单个键盘上的符号,按一次Shift输入一个大写字母,这个以前是可以的,后面改出来的bug,新版本可以了,在中文状态下按shift输入大写英文字母我还没见过输入法这样干的,现在有个问题就是组合键逻辑非常多,如果给太多的配置项,就会像一张蜘蛛网,容易产生bug
了解。。。我刚仔细和讯飞对比了下,切换中英文输入法的时候,可可输入法是严格要求先按住shift不放,再按空格键。。这样导致在打字很快的时候有一定概率输入法切换不成功,有时候按了shift,再按空格的时候shift可能已经松开了。。讯飞输入法貌似切换都是成功的,是不是他们允许快速连按shift加空格也默认是切换输入法?
讯飞是Shift键可以切换中英文,Shift+Enter也可以,相应的是按下事件,按住不动会一直切换,你说得对,我参考这个改一下。
临时输入英文不需要切换中英文,直接在中文状态下按v然后输入字母,空格会上屏。也可以不输入v,直接敲字母,按回车键将已输入的字母上屏
对的,可以通过这两种方式输入
还有个Bug反馈下,自定义的扩展键盘,自己改了,还是不能生效。。比如我把P键改成%,但是用起来还是按F才会出来%.
好的,这个我跟进一下,谢谢反馈