Как скрыть значок голосового поиска в поисковом фрагменте с помощью Android TV - PullRequest
0 голосов
/ 18 октября 2018

Как скрыть значок голосового поиска в android firetv extends android.support.v17.leanback.app.SearchFragment library.это происходит в моем коде по умолчанию, когда я расширяю эту библиотеку поиска ... Пока я не хочу использовать функцию голосового поиска ...

Ниже слушателя идет по умолчанию :::

 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);
                }
            }
        });

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

Вот как вы можете скрыть голосовой поиск в 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;}

Сделайте, это будет работать.Happy Coding:)

0 голосов
/ 19 октября 2018

Исходя из этой ссылки , Google имеет голосовой поиск по умолчанию.Если вы не предоставляете обратный вызов через setSpeechRecognitionCallback(SpeechRecognitionCallback), будет использоваться внутренний распознаватель речи, для которого ваше приложение должно будет запросить android.permission.RECORD_AUDIO.

Так что вам нужно сделать либо

  • Реализация setSpeechRecognitionCallback
  • Запрос android.permission.RECORD_AUDIO на AndroidManifest.xml
...