На счет детекта девайсов и кнопок, лучший из встреченных подходов - не ограничивать, потому что многие одновременно используют несколько девайсов, так иногда удобнее. Сами действия в таком случае можно вешать не на кнопки, а на события, с события маппить на кнопки разных девайсов. Тогда одно и тоже событие можно вызвать с нескольких девайсов параллельно, не обращая внимание на тип девайса.
На счет детекта девайсов и кнопок, лучший из встреченных подходов - не ограничивать, потому что многие одновременно используют несколько девайсов, так иногда удобнее. Сами действия в таком случае можно вешать не на кнопки, а на события, с события маппить на кнопки разных девайсов. Тогда одно и тоже событие можно вызвать с нескольких девайсов параллельно, не обращая внимание на тип девайса.
Я так понимаю для этого теперь есть enhanced input в пятом анриле.