For various reasons, I need to use the raw SpeechRecognizer API instead of the easier RecognizerIntent (RECOGNIZE_SPEECH) activity.
SpeechRecognizer
RecognizerIntent
That means,
No, cancel is not called when onError is invoked. You can look at the source here.
cancel
onError