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

相关文章
|
29天前
|
安全 物联网 Android开发
安卓物联网(IoT)应用开发:连接物理世界
【4月更文挑战第14天】本文探讨了安卓平台在物联网应用开发中的角色,强调了设备连接性、数据处理、用户界面、安全性和可扩展性五大关键点。通过举例说明了一个智能家居应用的开发流程,涉及通信协议、用户界面设计、数据安全及可扩展性的实现。安卓物联网应用开发结合了多领域知识,为创造智能、安全的生活解决方案提供了广阔空间。
|
5月前
|
XML 监控 Java
Android App开发之事件交互Event中检测软键盘和物理按键讲解及实战(附源码 演示简单易懂)
Android App开发之事件交互Event中检测软键盘和物理按键讲解及实战(附源码 演示简单易懂)
160 0
|
6月前
|
移动开发 小程序 Android开发
|
8月前
|
Android开发
控制安卓手机物理返回键
控制安卓手机物理返回键
|
10月前
|
Java Maven Android开发
Android自定义一个车牌字母选择键盘
和省份简称键盘不同的是,数据源上和边距有所差别之外,其他的实现方式均是一样的,采用外部垂直LinearLayout,内部多个横向的LinearLayout的搭配方式。
|
10月前
|
Java Maven Android开发
Android自定义一个省份简称键盘
实现方式呢有很多种,我相信大家也有自己的一套实现机制,这里,我采用的是组合View,用的是LinearLayout的方式。
|
Android开发
android 检测外接键盘并设置输入法布局
android 检测外接键盘并设置输入法布局
341 0
|
Android开发
android 物理键盘布局
android 物理键盘布局
166 0
|
JavaScript Android开发 iOS开发
兼容安卓和ios的手机端浏览器返回和物理返回的监听处理操作实战(推荐)
兼容安卓和ios的手机端浏览器返回和物理返回的监听处理操作实战(推荐)
270 0
兼容安卓和ios的手机端浏览器返回和物理返回的监听处理操作实战(推荐)
|
XML Android开发 数据格式
Android 自定义车牌键盘
Android 自定义车牌键盘
582 0
Android 自定义车牌键盘