Google Voice Typing on Android 16+ is a standalone IME with zero subtypes, so the old code (scanning subtypes for mode='voice') never found it. Also detect IMEs with getSubtypeCount()==0 and handle null subtype in switchInputMethod() and get_display_name().