Android 如何切换“;使用物理键盘”;

Android 如何切换“;使用物理键盘”;,android,keyboard,android-softkeyboard,native-methods,Android,Keyboard,Android Softkeyboard,Native Methods,我试图解决与以下帖子相同的问题: 和 基本上,我想从android切换本机选项,以打开或关闭物理键盘。但是,我想通过代码创建这个按钮 这些链接都没有一个好的答案。有人能帮我吗?没有,目前没有办法通过编程实现这一点。我们所能做的最多就是检测键盘/扫描仪何时连接,并通过覆盖应用程序类中的onConfigurationChanged方法,将用户重定向到输入法选择窗口: @Override public void onConfigurationChanged(Configuration newCon

我试图解决与以下帖子相同的问题:

基本上,我想从android切换本机选项,以打开或关闭物理键盘。但是,我想通过代码创建这个按钮


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

没有,目前没有办法通过编程实现这一点。我们所能做的最多就是检测键盘/扫描仪何时连接,并通过覆盖
应用程序
类中的
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();
  }
}

如果这是可能的话,我会很惊讶。问题是,他们在系统中已经有了这样做的选项,为什么不让用户做出这样的选择呢s我真的希望你是错的:p如果这是可能的,我会感到惊讶的原因是改变输入法(例如,从软键盘A到软键盘B)是不可能的(出于隐私和安全原因),我猜硬件键盘将被视为另一种输入法。我明白你的意思,但我不认为这有什么问题,因为这个切换按钮只控制软键盘的使用与否。如果我关闭了物理键盘,但我仍然连接它,我仍然可以使用它打字,唯一发生的事情是操作系统也会显示软键盘。