roUniversalControlEvent comes to mind if talking roScreen. Also avail via roImageCanvasEvent, ostensibly in ro*ScreenEvent's too.
You were able to do that with getInt() before fw7.2 but there was some overlap between releasing remote keys and 'defghijklmnopq' (`chr(i) for i in range(100,114)`; TheEndless described a hacky-yet-working workaround elsewhere) - now in 2.7 they added extra methods. Don't know if they fixed the
issue where Q and Z were indistinguishable though.
PS. Vudu is very much NDK. One of my wishes when rubbing my Roku remote
is that YouTube should add ECP keyboard support instead of the passive-aggressive banner that we should use their mobile app. Not necessarily a pipe dream mind you... it took Hulu a few years (and complete re-write of the app) to eventually support ECP kbd. ... But then again, Hulu does not have an Android axe to grind