Да, сканер штрих-кода определяется как физическая клавиатура.Когда к устройству подключена клавиатура, по умолчанию программная клавиатура отключена.Чтобы включить его, нам необходимо отключить аппаратную клавиатуру с помощью:
Настройки> Язык и ввод> Выбрать способ ввода
Имя параметра может отличаться в зависимости от устройства.Мы сможем использовать сканер вместе с программной клавиатурой, даже если выключим его.
И НЕТ, в настоящее время нет способа сделать это программным путем.Максимум, что мы можем сделать, это обнаружить, когда подключен сканер / клавиатура, и перенаправить пользователя в окно выбора метода ввода, переопределив метод 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();
}
}