首页 文章

替代使用Wifi Direct发现同伴,因为它需要两部手机都运行WiFi Direct发现

提问于
浏览
3

我正在尝试发现WiFi Direct对等Android设备,但只有当两部手机都运行WiFi Direct发现时才会发现对等体 .

到目前为止我所理解的是,只有当他们同时扫描WiFi直接连接时,他们才会看到对方 . 这是因为WiFi Direct的工作方式是当手机扫描WiFi Direct连接时,他们将与其他对等方协商接入点或从属设备的角色 . 因此,两者都需要调用discoverPeers()以使其自身可被发现并找到附近的设备 .

在我的应用程序中我想要的是,只有一个设备启动扫描过程,并且应列出所有支持wifi direct的附近设备 . 那么如何使用wifi Direct实现这一目标呢?还有其他替代品吗?

提前致谢

3 回答

  • 0

    使用WiFiDirect无法实现目标 . 您需要在所有要连接的设备上打开WiFiDirect(以编程方式或手动方式) .

    但是有一种方法可以减少发现过程的努力 . 您可以使用a service discovering而不是regular p2p connection.

    它允许仅在一个设备(客户端)上进行p2p发现 . 第二个设备(服务器)正在等待连接邀请 .

    在我们的一个应用程序中,我们遇到了一个问题:当设备执行p2p发现时,网络的带宽极度降低,导致已连接的设备断开连接 .

    使用服务发现确实帮助了我们 . 您可以使用the code作为示例 .

  • 2

    我能找到的唯一选择是导航到Wi-Fi Direct设置 . 在Android 6.0设备上,它可以像这样实现:Wi-Fi - >设置(右上角的3个点菜单) - > Wi-Fi Direct . 最有可能它开始发现过程本身......

    我扣除的是Wi-Fi Direct不是一个独立的功能,例如,蓝牙 . 它是Wi-Fi的一部分,因此无法单独打开/关闭 . Wi-Fi P2P网络创建始于群组所有者协商,该协商只能在支持Wi-Fi Direct的设备之间执行 . 随着P2P组的形成,它也可用于Wi-Fi传统设备(它的工作方式类似于标准的ad-hoc网络,所有支持Wi-Fi的设备都可以看到) .

    因此,为了创建P2P网络(组),您必须与其他P2P设备协商,这只有在您打开Wi-Fi Direct时才有可能 .

  • 0

    您已经注意到设备都应该处于发现模式 . 我目前正在开发一个关于WIFI-DIRECT的项目,是的,它非常不可靠 . 在连接和/或断开连接后,您也会发现很难发现 . 所以我所做的是,当用户打开设备WIFI时,我使用线程(无限循环中的背景)每8秒运行一次发现并更新UI . 这对我有用,用户不必连续搜索 .

    public class DiscoveryUpdater implements Runnable {
    @Override
    public void run() {
        while(true) {
            mManager.discoverPeers(mChannel, new WifiP2pManager.ActionListener() {
    
                @Override
                public void onSuccess() {
                    Log.d("DiscoveryUpdater", "Successful in adding Discovery Request");
                    mManager.requestPeers(mChannel,peerListListener);
                }
    
                @Override
                public void onFailure(int reasonCode) {
                    Log.d("DiscoveryUpdater", "Failed in adding Discovery Request "+reasonCode);
                }
            });
            try {
                Thread.sleep(8000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
    }
    

    希望它有所帮助(记得更新你的清单,我没有显示)

相关问题