2017-01-28 4 views
2

私はピアツーピアのAndroidゲームを開発しています。そのために私はWi-Fi Directを使って2つのデバイス間の接続を確立しています。私は接続を確立することができます。私はのGoogleドキュメントに沿って接続をセットアップしました。Wi-Fi Directの接続に関する問題

問題:ユーザーAは、ユーザーBに接続要求を送信できます。ユーザーBは、その要求を受け入れるか拒否するかによって応答します。ユーザーBが接続要求を拒否した場合、ユーザーAは接続要求に対する応答を取得できません。

ユーザーAがユーザーBに要求を送信するたびに、この問題を解決するために、ユーザーAの最後(送信者)に20秒タイマーを開始しました。また、接続要求が到着したときにユーザーBの側でタイマーを開始します。さて、リクエストが到着したときに受信側でタイマーを開始する方法を理解できません。

質問:

  1. レシーバの終わりに、接続要求の到着を認識するためにどのような方法がありますか?
  2. ユーザーBが接続要求を拒否したときに、ユーザーAの終わり(送信者)で接続要求への応答を処理する方法は?要求が拒否またはonFaliureよりも、いくつかのエラーに取得された場合、ピアとの

答えて

0
private void connect(int position, final String name) { 
    Toast.makeText(this,"connecting "+name,Toast.LENGTH_LONG).show(); 
    final WifiP2pDevice device=peers.get(position); 
    WifiP2pConfig config = new WifiP2pConfig(); 
    config.deviceAddress = device.deviceAddress; 
    mManager.connect(mChannel, config, new WifiP2pManager.ActionListener() { 

     @Override 
     public void onSuccess() { 
      Toast.makeText(getBaseContext(),"connected to "+ device.deviceName,Toast.LENGTH_LONG).show(); 
      isConnected=1; 
      mDiscover.setText("disconnect"); 
      //success logic 
     } 

     @Override 
     public void onFailure(int reason) { 
      Toast.makeText(getBaseContext(),"Error :"+ reason,Toast.LENGTH_LONG).show(); 
      //failure logic 
     } 
    }); 
} 

この方法の接続が理由コードで呼び出されます。

+0

いいえ、リクエストの拒否については言及しません。要求が正常に送信されたかどうかを示します。 –

関連する問題