我开发了一个自定义输入(使用/dev/uniput
)来向设备输入远程字符。在某些设备(例如Nexus 7)上,如果输入设备注册它处理QWERTY键,则不显示软键盘。通过实验,我发现如果只注册键0
- 9
,则会显示软键盘,除此之外,我还可以注入"注入"键0
- 9
。如果我注册了其他键(QWERTY),则不再显示软键盘。
注册是使用ioctl(m_fd, UI_SET_KEYBIT, key)
完成的,其中m_fd
是开放式/dev/uinput
设备,密钥是此设备应支持的密钥的linux密钥代码。
这是一个问题,因为大多数重音字符无法输入(如€
,Ç
,Â
等) - 它们可以(使用软件键盘),如果软键盘存在。
是否有#34;注册开关"某种形式告诉android-platform在需要用户输入时(即在EditText焦点上)出现软键盘?