Wi-Fi direto:com que frequência chamar a descoberta de pares?
-
26-12-2019 - |
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.
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;
}
}
});