android - WifiManager setWifiEnabled(),禁用Wi-Fi后继续?
问题描述
我想使用蜂窝数据下载文件。下载文件时似乎没有指定网络连接的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);
推荐阅读
- solidity - 使用 baseURI 的 Nft 随机性
- asp.net - 无法跟踪实体类型“用户”的实例,因为已经在跟踪具有相同键值 {'Id'} 的另一个实例
- frequency - 加速度谱 Y 轴不是分贝
- python - 如何让机器人加入语音频道?
- javascript - 如何定义定义是否显示汉堡菜单的宽度限制
- continuous-integration - 如何使用 GITHUB_TOKEN 克隆私有仓库?
- strace - 如何将 LD_PRELOAD 与 strace/ltrace 结合使用?
- python - Django 断管消息
- html - 尝试使用 pdf.js 时,我收到一个跨域请求被阻止
- python - 当 pytz.timezone() 传递给 tzinfo 时,pytz 返回 LMT 时区而不是 GMT