Android: Как включить / отключить Wifi или подключение к интернету программно



С помощью класса 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 соответственно относится к мобильной и wifi связи



если мое устройство Android подключено к обоим, можно ли переключаться между любой сетью или отключить любую сеть? Как с помощью функции:



connec.getNetworkInfo(0).setState(NetworkInfo.State.DISCONNECTED);
699   6  

6 ответов:

Я знаю о включении или отключении wifi:

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"/>

Включить 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

комплексные решения:

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

для включения отключения Wifi используйте WifiManager класс, чтобы получить системные (android устройства) услуги для Wifi :

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" />

чтобы получить подробную информацию и полный пример кода проекта для включения / выключения Wifi на android посетите мой сайт ссылка.

добавьте это разрешение в свой манифест и используйте приведенный выше код для изменения состояния 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"/>

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

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

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

Comments

    Ничего не найдено.