Fixed
Status Update
Comments
da...@google.com <da...@google.com>
ap...@google.com <ap...@google.com> #2
Thanks for filing the issue.
This is a particularly hard device to come by - do you happen to have access to the device? If so could you provide us with the output of: adb shell dumpsys media.camera > info.txt
Thanks!
This is a particularly hard device to come by - do you happen to have access to the device? If so could you provide us with the output of: adb shell dumpsys media.camera > info.txt
Thanks!
Description
Version used: androidx.leanback:leanback:1.1.0-alpha05
Devices/Android versions reproduced on: API 21+
The Crash happens in onPause in SearchSupportFragment
@Override
public void onPause() {
releaseRecognizer();
mIsPaused = true;
super.onPause();
}
particularly in releaseRecognizer();
Why's this happening?
When onResume is called the speechRecognizer is initialized but there's never a check whether the SpeechRecognizer is available, meaning
Inside the onResume function
@Override
public void onResume() {
super.onResume();
mIsPaused = false;
if (mSpeechRecognitionCallback == null && null == mSpeechRecognizer) {
mSpeechRecognizer = SpeechRecognizer.createSpeechRecognizer(
getContext());
mSearchBar.setSpeechRecognizer(mSpeechRecognizer);
}
if (mPendingStartRecognitionWhenPaused) {
mPendingStartRecognitionWhenPaused = false;
mSearchBar.startRecognition();
} else {
// Ensure search bar state consistency when using external recognizer
mSearchBar.stopRecognition();
}
}
There should be a check whether
if(SpeechRecognizer.isRecognitionAvailable(requireContext())
{
initializeSpeechRecognizer(); // copy the function body in onResume
}
Where does this break?
Especially on Amazon TV devices since they lack this speech recognizer.