I like the slogan "Yes, we can." Like, not respect. I respect "we cannot do it." Because the latter is much harder to know than the former. The former is knowledge, the latter is wisdom.
Recently I've got some wisdom about Android app development.
1) In some cases, we cannot root Android device. Really CANNOT. Is it possible to unlock the bootloader on the Verizon Moto G (xt1028) on android 4.4.4?
2) Recent Android has USB host function. Apps can communicate with USB devices. But there is one, only one exception. In the case of HID and its subclass is boot interface (all usual keyboards fall under this case), apps cannot do. Can an Android Expert Explain Strange USB Host Behavior
3) Apps cannot handle Alt-Tab. It is intercepted by PhoneWindowManager#interceptKeyBeforeDispatching.
I've tried to make a keyboard transmitter app. Classic Bluetooth and current Android Bluetooth stack (Bluedroid) cannot do it (Bluedroid lacks L2CAP support), so there is no such app now. But I thought that Bluetooth LE, Android 5.0, and Bluetooth LE peripheral capable device (very limited so far) can do.
And then, I've got some wisdom.
It is still possible. But deprived of Alt-Tab, does it have any value?
My hacking went bad. Framework, security, unexpected usage... I miss the date of PEEK / POKE.