在Android 10以下的版本中,可以使用BroadcastReceiver来监听网络连接状态的变化,并通过代码来判断无网络连接时断开WiFi连接。以下是一个示例代码:
首先,在AndroidManifest.xml文件中添加以下权限和广播接收器声明:
然后,在你的活动(Activity)或服务(Service)中创建一个BroadcastReceiver类来监听网络连接状态的变化,并在无网络连接时断开WiFi连接:
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.wifi.WifiManager;
public class WifiStateReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connManager.getActiveNetworkInfo();
if (networkInfo == null || !networkInfo.isConnected()) {
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
wifiManager.setWifiEnabled(false);
}
}
}
以上代码中,我们首先获取ConnectivityManager实例来检查网络连接状态。如果网络连接状态为空或不连接,我们获取WifiManager实例,并使用setWifiEnabled(false)
来断开WiFi连接。
请注意,在AndroidManifest.xml文件中注册的广播接收器必须与上述代码中的广播接收器类名一致(.WifiStateReceiver
)。
这样,每当网络连接状态发生变化时,无网络连接时会自动断开WiFi连接。