android 物理键盘 关键因素

简介:

http://blog.csdn.net/yk_hu0621/article/details/6257187

参考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

相关文章
|
7月前
|
安全 物联网 Android开发
安卓物联网(IoT)应用开发:连接物理世界
【4月更文挑战第14天】本文探讨了安卓平台在物联网应用开发中的角色,强调了设备连接性、数据处理、用户界面、安全性和可扩展性五大关键点。通过举例说明了一个智能家居应用的开发流程,涉及通信协议、用户界面设计、数据安全及可扩展性的实现。安卓物联网应用开发结合了多领域知识,为创造智能、安全的生活解决方案提供了广阔空间。
505 2
|
7月前
|
XML 监控 Java
Android App开发之事件交互Event中检测软键盘和物理按键讲解及实战(附源码 演示简单易懂)
Android App开发之事件交互Event中检测软键盘和物理按键讲解及实战(附源码 演示简单易懂)
773 0
|
移动开发 小程序 Android开发
|
Android开发
控制安卓手机物理返回键
控制安卓手机物理返回键
|
Java Maven Android开发
Android自定义一个车牌字母选择键盘
和省份简称键盘不同的是,数据源上和边距有所差别之外,其他的实现方式均是一样的,采用外部垂直LinearLayout,内部多个横向的LinearLayout的搭配方式。
102 0
|
Java Maven Android开发
Android自定义一个省份简称键盘
实现方式呢有很多种,我相信大家也有自己的一套实现机制,这里,我采用的是组合View,用的是LinearLayout的方式。
|
XML Java Android开发
Android 监听键盘输入(实现搜索、发送、完成等等)
在Android App的实际开发中,时常会需要监听软键盘的输入事件。 所以个人在此进行一个总结。 例如:微信和QQ聊天的消息发送,你会发现他的聊天框并没有发送的控件,软键盘的换行或者某个按钮会变成发送;在某些浏览器的输入框,输入内容后,软件盘的某个按钮会有搜索的字样,还有填写内容时的完成按钮等等,这些都可以通过监听键盘和输入框的一些配置实现这些功能。
|
Android开发
android 物理键盘布局
android 物理键盘布局
228 0
|
JavaScript Android开发 iOS开发
兼容安卓和ios的手机端浏览器返回和物理返回的监听处理操作实战(推荐)
兼容安卓和ios的手机端浏览器返回和物理返回的监听处理操作实战(推荐)
325 0
兼容安卓和ios的手机端浏览器返回和物理返回的监听处理操作实战(推荐)
|
Android开发
android 检测外接键盘并设置输入法布局
android 检测外接键盘并设置输入法布局
439 0