android - 如何检查 wifi 是否真的在 Android 中连接

标签 android android-wifi

我想让我的安卓设备连接到 wifi 热点。 我创建了一个新的 wificonfiguration 并将其添加到 wifimanager 中,此 wificonfiguration 具有 NetworkId。然后我调用该函数wifi.enableNetwork(NetworkId, true).

之后,我认为请求者将通过获取 ip 地址、身份验证,最后物理连接到热点。 那么有没有办法判断wifi是否物理连接?

我更喜欢类似处理程序的方法。

最佳答案

你可以试试这个:

ConnectivityManager cm = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo wifi = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

if (wifi.isConnected()) {
    // Your code here
}

编辑:更多细节:

像这样在 list 中注册一个 BroadcastReceiver:

<receiver android:name="WifiReceiver">
    <intent-filter>
        <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
        <action android:name="android.net.wifi.STATE_CHANGE"/>
    </intent-filter>
</receiver>

然后将上面的代码放在接收器的 onReceive() 方法中,如下所示:

@Override
public void onReceive(Context context, final Intent intent) {
    ConnectivityManager cm = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
    NetworkInfo wifi = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

    if (wifi.isConnected()) {
        // Your code here
    }
}

关于android - 如何检查 wifi 是否真的在 Android 中连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16577939/

相关文章:

java - 在 Android/Java 中使用 Canvas 在图像上绘图

android - 使用 applicationIdSuffix 时 React Native 应用程序不会启动

android - 从 ScanResult 或 : Interpreting ScanResult's 'capabilities' String 构建 WifiConfiguration

android - 通过 Wifi 在 Android Studio BumbleBee 上配对新设备

java - 当用户打开 wifi 并返回应用程序时刷新 webview

android - 如何使用SPAN [Smart Phone Ad-hoc Network] Framework建立Mesh网络?

android - 无法更改组所有者(组所有者 Intent )

java - DBFlow SQLite.delete() 抛出 java.lang.IllegalArgumentException : Please use query()

java - Android CMYK 模式

java - Android 开发和 TDD