Pergunta

Estou desenvolvendo um aplicativo P2P e seguindo o tutorial AQUI e enquanto o testava em 2 telefones, fiquei pensando quando devo iniciar o Peer Discovery?

Apenas uma vez quando o aplicativo é iniciado, periodicamente ou sempre onResume?

Estou perguntando porque algumas vezes quando tento mostrar a lista de pares não consigo encontrar nenhum. Eu também gostaria de saber a causa disso E o que realmente é a descoberta por pares e o que ela está fazendo.

Foi útil?

Solução

Eu inicio a descoberta por meio de ouvintes registrados no aplicativo a cada 'x' segundos e sim, você também gostaria de iniciar a descoberta onResume().Além disso, presumo que você já esteja aproveitando intenções de transmissão para determinar a mudança de estado.

No entanto, não posso esclarecer os detalhes internos da descoberta P2P, mas a descoberta pode falhar porque a rede está ocupada ou devido a um erro interno ou simplesmente porque o dispositivo não suporta P2P conforme mencionado aqui.

Outras dicas

mManager.discoverPeers(mChannel, new WifiP2pManager.ActionListener() {
        @Override
        public void onSuccess() {
            Toast.makeText(MainActivity.this, "onSuccess", Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onFailure(int reasonCode) {

            switch(reasonCode){

            case WifiP2pManager.ERROR:

                Toast.makeText(MainActivity.this, "Getting error while peers discover", Toast.LENGTH_SHORT).show();
                break;

            case WifiP2pManager.P2P_UNSUPPORTED:
                Toast.makeText(MainActivity.this, "Device is not supported", Toast.LENGTH_SHORT).show();
                break;


            case WifiP2pManager.BUSY:
                Toast.makeText(MainActivity.this, "Device is busy", Toast.LENGTH_SHORT).show();
                break;

            }
        }
    });
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top