Android: как включить/отключить Wi-Fi или подключение к Интернету
Используя класс Connectivity Manager, мы можем получить доступ к Wi-Fi или интернет-сети:
ConnectivityManager connec = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
// ARE WE CONNECTED TO THE NET
if ( connec.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED ||
connec.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTED ) {
// ...
}
где 0
и 1
соответственно относятся к мобильному и Wi-Fi-соединению
Если мое Android-устройство подключено к обоим, можно ли переключаться между любой сетью или отключить какую-либо сеть? Подобно использованию функции:
connec.getNetworkInfo(0).setState(NetworkInfo.State.DISCONNECTED);
Ответы
Ответ 1
Я знаю о включении или отключении Wi-Fi:
WifiManager wifiManager = (WifiManager)this.context.getSystemService(Context.WIFI_SERVICE);
wifiManager.setWifiEnabled(status);
где статус может быть true
или false
согласно требованию.
Редактировать:
Вам также необходимы следующие разрешения в файле манифеста:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
Ответ 2
Включение Wi-Fi:
WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
wifi.setWifiEnabled(true);
Отключить WiFi:
WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
wifi.setWifiEnabled(false);
Примечание:
Чтобы получить доступ к состоянию WiFi, мы должны добавить следующие разрешения в файл AndroidManifest.xml:
android.permission.ACCESS_WIFI_STATE
android.permission.UPDATE_DEVICE_STATS
android.permission.CHANGE_WIFI_STATE
Ответ 3
Полное решение:
try {
WifiManager wifi = (WifiManager)
context.getSystemService(Context.WIFI_SERVICE);
WifiConfiguration wc = new WifiConfiguration();
wc.SSID = "\"SSIDName\"";
wc.preSharedKey = "\"password\"";
wc.hiddenSSID = true;
wc.status = WifiConfiguration.Status.ENABLED;
wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
wc.allowedPairwiseCiphers
.set(WifiConfiguration.PairwiseCipher.TKIP);
wc.allowedPairwiseCiphers
.set(WifiConfiguration.PairwiseCipher.CCMP);
wc.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
boolean b=wifi.isWifiEnabled();
if (b) {
wifi.setWifiEnabled(false);
Toast.makeText(context, "yes", Toast.LENGTH_SHORT).show();
} else {
wifi.setWifiEnabled(true);
Toast.makeText(context, "no", Toast.LENGTH_SHORT).show();
}
//Log.d("WifiPreference", "enableNetwork returned " + b );
} catch (Exception e) {
e.printStackTrace();
}
Ссылка: http://amitkumar-android.blogspot.com/p/installation-steps.html
Ответ 4
Чтобы включить отключить Wi-Fi, используйте класс WifiManager
для получения услуг системы (Android-устройства) для Wi-Fi:
WifiManager wifi =(WifiManager)getSystemService(Context.WIFI_SERVICE);
Теперь объект wifi
класса WifiManager
используется для получения статуса wifi:
if(wifi.isWifiEnabled())
//Perform Operation
else
//Other Operation
И самое главное не забудьте дать следующее разрешение в вашем файле манифеста Android:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.UPDATE_DEVICE_STATS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
Чтобы получить подробную информацию и полный образец кода проекта для включения/отключения Wi-Fi на Android, посетите ссылку на мой сайт.
Ответ 5
добавьте это разрешение в свой манифест и используйте приведенный выше код для изменения состояния WiFi:
<!--permission ge enable and disable WIFI in android-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
Ответ 6
Я не мог получить доступ к объекту контекста напрямую.
Мое решение заключается в следующем:
Context appContext = Android.App.Application.Context;
var wifiManager = (WifiManager)appContext.GetSystemService(WifiService);
wifiManager.SetWifiEnabled(state);
Также мне пришлось изменить некоторые записи, например. WIFI_SERVICE против WifiService.
Ответ 7
Можно включить/отключить Wi-Fi на устройствах до Android 10, используя следующий код:
WifiManager wifiManager =
(WifiManager)this.context.getSystemService(Context.WIFI_SERVICE);
wifiManager.setWifiEnabled (статус);
Но обратите внимание, что это невозможно сделать на Android 10, и, вероятно, тоже впереди.
https://issuetracker.google.com/issues/141011684