そのため、私はかなり長い間 WiFi Direct を使用してきましたが、その間ずっと接続の問題に悩まされてきました。WiFi Direct をオン/オフするためのハード ボタンがなくなった 4.1 にアップデートして以来、接続に一貫性がないように見えます。私の用途では、ピアを見つける必要はありません。以前のやり取りで保存されたデバイス アドレスからピアに接続するだけです。デバイスがすぐに接続される場合もあれば、2 番目のデバイスが招待を受信しない場合もあれば、最初のデバイスが無期限に招待を送信しようとしてスタックする場合もあります。以下は私の接続コードです。かなりむき出しなので、何が問題なのかわかりません。どんな助けでも大歓迎です!どうもありがとうございました。
WifiP2pConfig config = new WifiP2pConfig();
SlideMenuItem item = sideMenu.getItem(itemId);
config.deviceAddress = item.label;
config.wps.setup = WpsInfo.PBC;
if (progressDialog != null && progressDialog.isShowing()) {
progressDialog.dismiss();
}
progressDialog = ProgressDialog.show(mContext, "Press back to cancel",
"Connecting to :" + item.label, true, true);
manager.connect(channel, config, new ActionListener() {
@Override
public void onSuccess() {
// WiFiDirectBroadcastReceiver will notify us. Ignore for now.
}
@Override
public void onFailure(int reason) {
Toast.makeText(mContext, "Connect failed. Retry.", Toast.LENGTH_SHORT).show();
}
});
@Override
public void onConnectionInfoAvailable(WifiP2pInfo arg0) {
// TODO Auto-generated method stub
if (progressDialog != null && progressDialog.isShowing()) {
progressDialog.dismiss();
}
Toast.makeText(this, "Succesfully connected.", Toast.LENGTH_SHORT).show();
}