2012-11-05 40 views
1

我试图解决同样的事情下面的帖子帖子:如何切换“使用物理键盘”

How to toggle "Use Physical Keyboard".Switch from physical to software keyboard

Basicaly我想切换从Android的原生选项打开打开或关闭物理键盘。但是,我想通过代码创建此按钮。

这些链接都没有一个好的答案。谁能帮我?

+0

我会相当惊讶,如果这是可能的。 – CommonsWare

+0

事情是,他们已经有一个选择在系统中做到这一点,为什么不让这个选项由用户做出? :S ...我真的希望你错了:P –

+0

如果可能的话,我会感到惊讶的原因是改变输入法(例如,从软键盘A到软键盘B)是不可能的(为了隐私和安全原因),我的猜测是硬件键盘将被视为另一种输入方法。 – CommonsWare

回答

0

不,目前没有办法以编程方式完成此操作。我们所能做的最重要的是,当键盘/扫描仪连接检测和用户重定向到输入法选择窗口,在您的Application类中重写onConfigurationChanged方法:

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 
    if(newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO) { 

    ((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)) 
            .showInputMethodPicker(); 
    Toast.makeText(this, "Barcode Scanner detected. Please turn OFF Hardware/Physical keyboard to enable softkeyboard to function.", Toast.LENGTH_LONG).show(); 
    } 
}