Android:如何检查设备是不是通过 WiFi - Direct 连接到另一台设备?

Posted

技术标签:

【中文标题】Android:如何检查设备是不是通过 WiFi - Direct 连接到另一台设备?【英文标题】:Android: How to check if device is connected to another device via WiFi - Direct?Android:如何检查设备是否通过 WiFi - Direct 连接到另一台设备? 【发布时间】:2017-05-12 10:23:13 【问题描述】:

我想知道有没有办法,类似于检查是否建立了 WiFi 连接。

ConnectivityManager connManager = (ConnectivityManager) 
getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

if (mWifi.isConnected()) 
// Do whatever

但是使用 WiFi p2p?

我的应用程序通过 WiFi-Direct 连接到传感器。如果用户没有连接到传感器,应该会出现一个 textView 说“你没有连接到传感器”。目前,这仅在用户启动 WiFi Direct 活动时才有效,该活动注册了一个广播接收器,该接收器检查设备是否通过 WiFi p2p 连接到某物。但我想知道这一点,而不必开始我的 WiFi Direct 活动。有没有办法做到这一点?

【问题讨论】:

您可以查看this 一个。这是一个非常好的答案。 【参考方案1】:
private void checkWifiOnAndConnected() 

            WifiManager wifiMgr = (WifiManager) getActivity().getSystemService(Context.WIFI_SERVICE);
            if (wifiMgr.isWifiEnabled())  // WiFi adapter is ON
                WifiInfo wifiInfo = wifiMgr.getConnectionInfo();
                 connected_wifi=wifiInfo.getSSID();
            
            else 
               // Utill.showCenteredToast(getActivity(), getResources().getString(R.string.str_wifi_on));
            
        


  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

【讨论】:

这真的适用于 WiFi Direct 吗?这不仅适用于常规 WiFi 连接吗? 请检查它是否适合我。它用于 wifi 连接,但它可以与 wifi direct 一起使用。 我会检查,它可能有效,但我认为的问题是,如果它通过 WiFi 连接到路由器而不通过 WiFi Direct 连接到传感器,它不会显示 textView。 对我来说,这只会告诉我我的 WiFi 是否启用。所以不幸的是它对我不起作用,谢谢你的帮助。

以上是关于Android:如何检查设备是不是通过 WiFi - Direct 连接到另一台设备?的主要内容,如果未能解决你的问题,请参考以下文章

我如何检查我的设备是否与互联网连接

如何检查设备是不是具有 WiFi Direct 功能

如何在android中检查网络是不是连接到wifi [重复]

如何以编程方式通过 Wifi 获取连接在同一网络上的其他设备的 IP 地址?

Android:如何获取当前设备 WiFi 直接名称

设备在Android中连接到WiFi时如何获取蜂窝网络的IP地址