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);
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