Как скрыть значок голосового поиска в android firetv расширяет библиотеку android.support.v17.leanback.app.SearchFragment. это по умолчанию в моем коде, когда я расширил эту поисковую библиотеку ... На данный момент я не хочу использовать функцию голосового поиска ...
Ниже слушатель идет по умолчанию :::
setSpeechRecognitionCallback(new SpeechRecognitionCallback() {
@Override
public void recognizeSpeech() {
Log.v(TAG, "recognizeSpeech");
try {
Intent mSpeechRecognizerIntent = getRecognizerIntent();
mSpeechRecognizerIntent.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_MINIMUM_LENGTH_MILLIS, new Long(3000));
mSpeechRecognizerIntent.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS, new Long(2000));
startActivityForResult(mSpeechRecognizerIntent, REQUEST_SPEECH);
//startActivityForResult(getRecognizerIntent(), REQUEST_SPEECH);
} catch (ActivityNotFoundException e) {
Log.e(TAG, "Cannot find activity for speech recognizer", e);
}
}
});
Исходя из этого ссылка, Google имеет голосовой поиск по умолчанию. Если вы не предоставите обратный вызов через setSpeechRecognitionCallback(SpeechRecognitionCallback)
, будет использоваться внутренний распознаватель речи, для которого ваше приложение должно будет запросить android.permission.RECORD_AUDIO
.
So you need to do either
- Implement
setSpeechRecognitionCallback
- Request
android.permission.RECORD_AUDIO
on AndroidManifest.xml
Вот как можно скрыть голосовой поиск в searchFragment.
Внутри searchFragment вам нужно переопределить onCreateView.
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View root = super.onCreateView(inflater, container, savedInstanceState);
FrameLayout searchFrame = root.findViewById(R.id.lb_search_frame);
SearchBar mSearchBar = searchFrame.findViewById(R.id.lb_search_bar);
SpeechOrbView mSpeechOrbView = mSearchBar.findViewById(R.id.lb_search_bar_speech_orb);
if (mSpeechOrbView != null) {
mSpeechOrbView.setOrbIcon(ContextCompat.getDrawable(getActivity(),
R.drawable.ic_search_sel));
mSpeechOrbView.setVisibility(View.GONE);
}return root;}
Сделай это, это сработает. Удачного кодирования :)