WifiManager setWifiEnabled(),Wi-Fi 禁用后是否继续?

Dam*_*les 0 android android-networking

我想使用蜂窝数据下载文件。下载文件时似乎没有指定网络连接的API,所以我试图在下载前禁用Wi-Fi。

好像可以用这个setWifiEnabled方法,但是文档没有提到是否阻塞。我假设它不是。然后,我必须等到 Wi-Fi 被禁用才能继续下一行。

val wifiManager = this.applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager
wifiManager.isWifiEnabled = false
(how to wait here until the system finishes disabling Wi-Fi?)
downloadFile()
Run Code Online (Sandbox Code Playgroud)

什么是最简单的方法?

Ami*_*ari 5

您可以注册一个BroadcastReceiver以在 WiFi 连接发生变化时收到通知或尝试:

private boolean isConnectedViaWifi() {
 ConnectivityManager connectivityManager = (ConnectivityManager) appObj.getSystemService(Context.CONNECTIVITY_SERVICE);
 NetworkInfo mWifi = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);     
 return mWifi.isConnected();
Run Code Online (Sandbox Code Playgroud)

}

和:

new Timer().scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
    if(isConnectedViaWifi()) //download
}}, 0, 1000);
Run Code Online (Sandbox Code Playgroud)