WifiManager setWifiEnabled (), продолжить после отключения Wi-Fi? - PullRequest
0 голосов
/ 24 октября 2019

Я хочу скачать файл, используя сотовые данные. Похоже, что нет 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()

Какой самый простой способ для этого?

1 Ответ

2 голосов
/ 24 октября 2019

Вы можете зарегистрировать 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);
...