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

时间: 2024-10-18 17:04:17

android 物理键盘 关键因素的相关文章

Android 物理键盘的启用修改

http://blog.csdn.net/DrakeBlue/article/details/39049495   Android系统在外接物理键盘的时候,可以在Settings的Language&Input设置中,将默认的输入设置设为软键盘还是物理键盘. Android系统在检测到有外接USB键盘的时候,默认是启用物理键盘,而软键盘将会隐藏.如果需要启用软键盘,需要将物理键盘OFF掉. 现在,我们修改源代码,将这个物理键盘默认改为OFF. 通过Settings的代码,我们找到该Dialog是通

Android 屏蔽物理键盘

HDMI dongle 项目, 需屏蔽物理键盘, 实现如下: frameworks/base/services/java/com/android/server/wm/WindowManagerService.java 中的 computeScreenConfigurationLocked 方法 将hardKeyboardAvailable = false. // Determine whether a hard keyboard is available and enabled. boolean

Mobclix报告:Android用户更爱物理键盘

美国移动http://www.aliyun.com/zixun/aggregation/6277.html">广告公司Mobclix的最新调查显示,多数Android用户更喜欢物理键盘,而非触控屏.这表明像Droid Pro这样配备侧滑键盘的Android手机仍然有很大市场空间. Mobclix的调查于今年10月进行,共涉及1052名美国Mobclix广告用户,主要调查结果如下:60%的Android用户年龄不足34岁,30%年龄介于34至49岁之间,老年人在Android用户中占比较小.

android模拟器EditText 不能用物理键盘输入,也不能用电脑键盘输入

昨天升级了SDK,ADT,发现原来可以在EditText里面使用电脑的键盘输入的功能,现在无法输入了,连模拟器的无力键盘也不行,只能使用虚拟键盘,非常麻烦,还有在baidu里有如下方法,只是在Create AVD的时候在Hardware这一项中添加keyboard support keyboard lid support: 模拟器物理键盘,设为yes,表示模拟器物理键盘可用 keyboard support : 电脑键盘,设为yes,电脑键盘可用

Android 物理按键整理及实例代码_Android

先给大家看一段代码,然后说明. import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.KeyEvent; import android.widget.Toast; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInst

RIMCEO:我们并未放弃黑莓物理键盘

CNET科技资讯网 5月3日 国际报道 据RIM CEO托斯滕·海因斯(Thorsten Heins)表示,RIM没有取消物理键盘.海因斯在公司召开的BlackBerry World 大会上向与会记者和博客表示,他希望澄清公司发布BlackBerry 10软件引发的混淆--业界普遍报道RIM或取消其物理键盘.尚未发布的BlackBerry 10软件亮点之一是其智能虚拟键盘将触摸屏键盘提高到一个 新的水平.该软件不仅知道用户经常使用的单词,还知道用户敲击设备的方式,对马虎输入进行纠错.总之,虚拟键

RIMCEO称黑莓并未放弃物理键盘

CNET科技资讯网 5月3日 国际报道 据RIM CEO托斯滕·海因斯(Thorsten Heins)表示,RIM没有取消物理键盘.海因斯在公司召开的BlackBerry World 大会上向与会记者和博客表示,他希望澄清公司发布BlackBerry 10软件引发的混淆--业界普遍报道RIM或取消其物理键盘.尚未发布的BlackBerry 10软件亮点之一是其智能虚拟键盘将触摸屏键盘提高到一个 新的水平.该软件不仅知道用户经常使用的单词,还知道用户敲击设备的方式,对马虎输入进行纠错.总之,虚拟键

黑莓发布物理键盘版Classic智能手机

新浪科技讯 北京时间12月18日凌晨消息,黑莓周三发布了长期以来备受市场期待的Classic智能手机,希望借助这种产品重新赢得市场份额,并吸引那些仍在使用旧版物理键盘手机的用户. Classic手机与黑莓一度畅销的Bold和Curve机型十分相似.黑莓称,这款新手机配备了大显示屏,拥有较长的电池寿命,支持亚马逊Android应用商店下载服务,浏览器速度较旧款机型快三倍. 黑莓CEO程守宗(John Chen)发表声明称:"黑莓Classic是许多Bold和Curve用户一直都在等待的强大通信工具

探索Android软键盘的疑难杂症

探索Android软键盘的疑难杂症 深入探讨Android异步精髓Handler 详解Android主流框架不可或缺的基石 站在源码的肩膀上全解Scroller工作机制 Android多分辨率适配框架(1)- 核心基础 Android多分辨率适配框架(2)- 原理剖析 Android多分辨率适配框架(3)- 使用指南 自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View