Android: Как включить / отключить Wi-Fi или интернет-соединение программно - PullRequest
75 голосов
/ 14 октября 2010

Используя класс 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);

Ответы [ 6 ]

172 голосов
/ 14 октября 2010

Я знаю о включении или отключении Wi-Fi:

WifiManager wifiManager = (WifiManager)this.context.getSystemService(Context.WIFI_SERVICE);
wifiManager.setWifiEnabled(status);

где статус может быть true или false согласно требованию.

Edit:

Вам также необходимы следующие разрешения в файле манифеста:

 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
 <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/> 
29 голосов
/ 10 сентября 2012

Для включения WiFi:

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
12 голосов
/ 05 января 2011

Полное решение:

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 голосов
/ 15 июня 2012

Чтобы включить отключение 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 посетите мой сайт ссылку .

1 голос
/ 17 мая 2018

Я не могу получить доступ к объекту контекста напрямую.
Мое решение заключается в следующем:

Context appContext = Android.App.Application.Context;
var wifiManager = (WifiManager)appContext.GetSystemService(WifiService);
wifiManager.SetWifiEnabled(state);

Также я должен был изменить некоторые записи, например. WIFI_SERVICE против WifiService.

1 голос
/ 18 мая 2012

добавьте это разрешение в манифест, а затем используйте указанный выше код для изменения состояния 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"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...