Problema com react-native-gps-state

Estou trabalhando na refatoração de um app react-native 0.59.9 para a versão mais recente 0.72.6, até então tudo ocorrendo bem, porém eu remove essa biblioteca pois a mesma da diversos erros durante o build de desenvolvimento, mesmo seguindo o guia de instalação, a mesma se encontra com problemas, e neste app era fundamental ter o listiner dessa biblioteca para ficar com vendo as alterações de status do GPS, como quando a permissão foi rejeitada ou quando o usuário desativa o Serviço de Localização nas configurações do telefone. Pois como a mesma envia um id de status a aplicação já esta preparada para este tipos de problema, alguém sabe de alguma outra biblioteca que substitua essa ou algo que eu possa fazer na aplicação para usar?

qual erro tá dando?

Cara n sei o que eu fiz agora consegui instalar ele normalmente e agora foi, provavelmente poderia ser algum outro problema, porem ao tentar rodar esse codigo que esta dentro da biblioteca ele nao funciona

componentWillMount(){
	GPSState.addListener((status)=>{
		switch(status){
			case GPSState.NOT_DETERMINED:
				alert('Please, allow the location, for us to do amazing things for you!')
			break;

			case GPSState.RESTRICTED:
				GPSState.openLocationSettings()
			break;

			case GPSState.DENIED:
				alert('It`s a shame that you do not allowed us to use location :(')
			break;

			case GPSState.AUTHORIZED_ALWAYS:
				//TODO do something amazing with you app
			break;

			case GPSState.AUTHORIZED_WHENINUSE:
				//TODO do something amazing with you app
			break;
		}
	})
	GPSState.requestAuthorization(GPSState.AUTHORIZED_WHENINUSE)
}

componentWillUnmount(){
	GPSState.removeListener()
}
Erro
 WARN  `new NativeEventEmitter()` was called with a non-null argument without the required `addListener` method.
 WARN  `new NativeEventEmitter()` was called with a non-null argument without the required `removeListeners` method.

Eu testei em componente funcional também usando

  useEffect(() => {
    return () => {
    };
  }, []);

Mas dá erro? Ou só não funciona? Como estão as permissões?

Sim da erro, tentando usar dessa forma ai eu não obtenho nenhuma informação, e as permissões já foram concedidas

qual erro???

 WARN  `new NativeEventEmitter()` was called with a non-null argument without the required `addListener` method.
 WARN  `new NativeEventEmitter()` was called with a non-null argument without the required `removeListeners` method

Mas isso não é um erro, é só um WARN do proprio RN

mas o que posso modificar da biblioteca para remover isso?

Então… quando vc tira esse trecho o warn para? pq as vezes pode ser em outra lib tb. Digo isso pq tem exatamente as duas referencias de add e remove ali.


Caso tenha ctz q seja nessa lib, vc pode inserir isso dentro da classe (android):

    // Required for rn built in EventEmitter Calls.
    @ReactMethod
    public void addListener(String eventName) {

    }

    @ReactMethod
    public void removeListeners(Integer count) {

    }

Agora o não funcionamento correto da lib, quando vc dá um console.log no status, acontece algo? ou simplesmente nem entra ali na funcao do addListener?

pior que a bilioteca já esta com isso lá, estava supeitando que poderia ser a chamada no NativeModule mesmo la que esteja diferente

Isso aqui é um exemplo da biblioteca q estou criando, eu fiz dessa forma o listener que escuta as informações da musica, creio que talvez se fizer dessa forma resolva o problema

useEffect(() => {
    const musicPositionListener = ({progress, position, duration}: any) => {
      setMusicPosition(formatTime(position));
      setCurrentProgress(progress);
    };
    DeviceEventEmitter.addListener('onProgressUpdate', musicPositionListener);
    return () => {
      DeviceEventEmitter.removeAllListeners('onProgressUpdate');
    };
  }, []);

eu imaginei…


é uma possibilidade.


em relação ao que falei, chegou a tentar? dar uma debugada mais manual