参考PhoneWindowManager.java的adjustConfigurationLw()方法,可以找出以下关键因素:
config_lidKeyboardAccessibility:在frameworks/base/core/res/res/values/config.xml中定义,含义如下:
Indicate whether the lid state impacts the accessibility of the physical keyboard.
0 means it doesn't,
1 means it is accessible when the lid is open,
2 means it is accessible when the lid is closed.
The default is 1.
意为物理键盘是否受滑盖影响,0表示不受滑盖影响,1表示当滑盖打开时物理键盘可用,2表示滑盖关闭时物理键盘可用。
另外PhoneWindowManager.java还有个常量也对物理键盘的状态有影响:
// Debugging: set this to have the system act like there is no hard keyboard.
static final boolean KEYBOARD_ALWAYS_HIDDEN = false;
InputMethodService.java: 判断是否显示软键盘的代码:
onShowInputRequested() {
if (!onEvaluateInputViewShown()) {
return false;
}
......................
}
public boolean onEvaluateInputViewShown() {
Configuration config = getResources().getConfiguration();
return config.keyboard == Configuration.KEYBOARD_NOKEYS
|| config.hardKeyboardHidden == Configuration.KEYBOARDHIDDEN_YES;
}
其中两项config.hardKeyboardHidden就是framworks中config.xml的config_lidKeyboardAccessibility取值
物理键盘映射过程:
手机/system/usr/keylayout/*.kl :内核将keyCode映射成有含义的字符串
KeycodeLabels.h : framework 将字符串映射成keyEvent的keyCode
frameworks/.../res/values/attrs.xml
分享到:
相关推荐
主要为大家详细介绍了Android物理键盘事件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Android自定义键盘之中文键盘demo,演示了汉字键盘的实现方法。更详细描述见相关博客。
Unity3D android 拉起android软键盘 最近公司项目有一个手机VR展厅业务,用U3D做VR场景还可以做到,后面要加个2D的线下预定页面,就涉及到3D 2D界面转换,首先考虑u3d作为插件,不考虑升级客户端,更新U3D资源来升级...
Android自定义键盘:数字键盘和字母键盘
本例子讲述了,android开发中常用的键盘事件的处理示例。另外,加有文档的说明
android软键盘上添加一个按钮
在开发时遇到一个问题,需要对软...但是由于android不直接提供对软键盘打开与关闭操作的监听器,所以必须自己来写一个关于软键盘打开/关闭的监听器。 原理是通过对OnGlobalLayoutListener()来实现对软键盘的状态监听器
Android自定义软键盘
android 输入法键盘弹出与否判断和输入法键盘弹出时将界面滚动到指定位置demo
android自定义键盘 限制车牌号输入 android自定义键盘 限制车牌号输入 android自定义键盘 限制车牌号输入 android自定义键盘 限制车牌号输入 android自定义键盘 限制车牌号输入
我们在android手机上面有时候会遇到监听手机软键盘按键的时候,例如:我们在浏览器输入url完毕后可以点击软键盘右下角的“GO”按键加载url页面;在点击搜索框的时候,点击右下角的search符号键可以进行搜索;或者在...
android软键盘把布局顶上去问题,包含全屏状态布局上移问题。
这篇文章是介绍Android中自定义键盘的一些套路,通过定义一个数字键盘为例,本篇的文章语言是基于Kotlin实现的,如果还没有用或者不熟悉该语言的同学,可以自己补习,我之前也写过入门文章。 效果图 github:源码...
Android 模拟器和PC物理键盘映射,文档里有的,不要钱
监听Android软键盘弹出和收起事件(所有代码都是抽离自facebook/react-native源码中, 亲测有效, 放心食用)。回调事件方法参数包含键盘是否弹出(isShow)、键盘高度(keyboardHeight)、屏幕可用高度(screenHeight)、屏幕...
Android 对应键盘KeyCode,主要用于开发蓝牙键盘获取code值而存的
Android 安全键盘 字母和数字和符号,安全键盘,可以随机生成。为了Android工程的密码输入的安全性。自己测试过,可以使用的。
android自定义数字键盘 实现键盘的自定义、点击edittext光变移动、数字随机生成等,目前只支持单行文本
本人亲测代码,作为Android中键盘事件处理的案例,如果大家喜欢我的例子,可以去我的博客浏览更多文章,供大家学习所用!
Delphi XE 开发Android虚拟键盘 ,源码文件:FMX.VirtualKeyboard.Android