Android 和 WiFi Direct - 连接问题

标签 android wifi wifi-direct

所以我使用 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/

相关文章:

android - 如何从 android 检测 USB 打印机并进行打印

linux - 如何获取连接到我的路由器的设备详细信息?

android - 带有嵌入式浏览器的 Google OAuth 2.0 和强制门户

android-wifi - WiFi Peer Discovery 的 Android O 问题

android - 为什么 Android Wi-Fi Direct 使用 discoverServices 一次只返回一项服务?

android - 如何找到 wifip2p 客户端设备的地址?

android - libgdx 粒子效果旋转

java - 无法检查单选按钮

java - Android 获取用户位置一次

windows - 用于获取信号强度的 WLAN API