所以我使用 WiFi Direct 已经有一段时间了,在整个过程中我一直被连接问题所困扰。自从更新到 4.1 后,不再有用于打开和关闭 WiFi Direct 的硬按钮,我似乎总是无法连接。对于我的用途,我不需要找到对等点,只需从早期交互中存储的设备地址连接到对等点。有时设备会立即连接,有时第二台设备不会收到邀请,有时第一台设备会卡住尝试无限期地发送邀请。下面是我的连接代码,它很简单,所以我不确定哪里出了问题。任何帮助,将不胜感激!非常感谢。
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();
}
最佳答案
我有 4.0 和 4.1 设备,据我所知,4.0 可以选择将 Wi-Fi Direct 切换到 4.1 始终开启的位置。人们没有意识到这一点的原因是因为 4.0 上的 Wi-Fi Direct 要求关闭常规 Wifi。后来,在 4.1 中,启用常规 Wifi 可以启用“始终在线”的 Wi-Fi Direct。
所以 TL;DR 版本:如果找不到 Wi-Fi Direct 选项,请打开常规 WiFi。
对此不是 100%,但我希望它有所帮助。
关于Android 和 WiFi Direct - 连接问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13389886/