WifiManager setWifiEnabled(),禁用Wi-Fi后继续?
WifiManager setWifiEnabled(), continue after Wi-Fi disabled?
我想使用蜂窝数据下载文件。下载文件时似乎没有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()
最简单的方法是什么?
您可以注册一个 BroadcastReceiver 以便在 WiFi 连接更改时收到通知,或者尝试:
private boolean isConnectedViaWifi() {
ConnectivityManager connectivityManager = (ConnectivityManager) appObj.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mWifi = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
return mWifi.isConnected();
}
与:
new Timer().scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
if(isConnectedViaWifi()) //download
}}, 0, 1000);
我想使用蜂窝数据下载文件。下载文件时似乎没有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()
最简单的方法是什么?
您可以注册一个 BroadcastReceiver 以便在 WiFi 连接更改时收到通知,或者尝试:
private boolean isConnectedViaWifi() {
ConnectivityManager connectivityManager = (ConnectivityManager) appObj.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mWifi = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
return mWifi.isConnected();
}
与:
new Timer().scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
if(isConnectedViaWifi()) //download
}}, 0, 1000);