Как зарегистрировать событие кнопки гарнитуры в react native?

#react-native

#react-native

Вопрос:

Я использую последнюю версию React Native. Я пытаюсь что-то регистрировать в консоли при каждом нажатии кнопки гарнитуры на Android. До сих пор мне это не удавалось.

Я попробовал react-native-music-control . В документах говорится, что

 MusicControl.on('togglePlayPause', ()=>{console.log('clicked')})
  

должно сработать. Но я не уверен, что это только для ios или Android тоже.

Это мой componentDidMount (рендеринг возвращает текст «привет»).

  componentDidMount() {
    MusicControl.enableControl('play', true);
    MusicControl.enableControl('pause', true);
    MusicControl.enableControl('stop', true);
    MusicControl.enableControl('togglePlayPause', true);
    MusicControl.on('play', () => { console.log('----'); });
    MusicControl.on('pause', () => { console.log('----'); });
    MusicControl.on('togglePlayPause', () => { console.log('----'); });
  }
  

‘—-‘ регистрируется только при отключении гарнитуры, а не в любое другое время.

Ответ №1:

В официальном документе на github говорится:

 MusicControl.on('togglePlayPause', ()=> {}); // iOS only
  

В iOS only комментарии довольно четко указано, что это событие доступно только на iOS и не будет запускаться на Android

Комментарии:

1. Я нашел это в выпусках. github.com/tanguyantoine/react-native-music-control/issues /…

Ответ №2:

Итак, пакет react-native-keyevent действительно хорошо работает с Android. После связывания пакета мне пришлось настроить его в MainActivity.java (которое я пропустил по ошибке). После того, как я это сделал, в Android все заработало должным образом.