PSA: Disabling Accessibility Services Breaks OK Google Audio Feedback on Nougat
“OK Google, what’s the weather like tomorrow.” The Google App’s voice recognition feature is incredibly useful for answering many basic questions, though the feature tends to be underutilized in public spaces. Many phones with dedicated voice processing chips are able to summon Google Search with a simple hotword, and if your phone isn’t silenced you’ll hear a beep indicating that the hotword was recognized.
But there seems to be a rather peculiar bug affecting the Google App on Android Nougat, and it’s the apparent absence of auditory feedback during OK Google voice recognition. It appears that the issue arises when the user has disabled all accessibility services under Settings –> Accessibility. In order to restore auditory feedback for voice recognition, all you need to do is enable any accessibility service that you have listed in the menu.
This bug seems to occur no matter which version of the Google App you’re running (we tested on older versions as well as a beta version released yesterday). We’re not exactly sure why this bug occurs, or exactly why enabling an accessibility service seems to fix this search issue, as a comparison of the logcat output with and without an accessibility service enabled doesn’t show any obvious changes that would account for this bug.
But the fact that enabling an accessibility service solves the problem seems to suggest that the Google App uses accessibility events, maybe TYPE_WINDOW_STATE_CHANGED, to detect when the DspHotwordVoiceSearchActivity is called to draw a PopupWindow on top of the current activity. There might have been some obscure change with the way accessibility works on Nougat to cause the Google App to explicitly require accessibility events to be sent, whereas this wasn’t necessary in previous versions of Android.
Of course, since the Google App is closed source, there’s no way to actually verify why this bug occurs. We’ll just have to notify Google of this issue and hope to see a quick patch in the next version of the Google App.