Да, вы можете .
Получите объект Configuration , используя
Configuration config = getResources().getConfiguration();
..., а затем посмотрите на поле keyboard
.
Если значение keyboard
не равно KEYBOARD_NOKEYS , у пользователя есть аппаратная клавиатура.
Обратите внимание, что @ Carl говорит в своем комментарии ниже, что пользователь может подключить USB-клавиатуру в любой момент, когда ваше приложение работает, что приводит к изменению значения keyboard
.