Есть ли способ в Android узнать, есть ли у пользовательского устройства фактическая клавиатура или нет?

Я хотел бы определить, есть ли у текущего телефона пользователя аппаратная клавиатура или только экранная клавиатура. Возможно ли это с SDK?

Ответ 1

Да, вы можете.

Извлеките Configuration с помощью

Configuration config = getResources().getConfiguration();

... и затем просмотрите поле keyboard.

Если значение keyboard не KEYBOARD_NOKEYS, пользователь имеет аппаратную клавиатуру.

Обратите внимание, что как @Carl в своем комментарии ниже пользователь может подключить USB-клавиатуру в любой момент, пока ваше приложение работает, вызывая значение keyboard изменить.