#java #android #kotlin #wifi #android-wifi
#java #Android #kotlin #wifi #android-wifi
Вопрос:
Я хочу включить / отключить Wi-Fi из моего приложения для Android. Как я могу это сделать?
Ответ №1:
WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
wifi.setWifiEnabled(false); // true or false to activate/deactivate wifi
Вам также необходимо запросить разрешение в вашем AndroidManifest.xml :
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
Комментарии:
1. да, не забудьте добавить разрешение на использование в свой манифест android.permission. CHANGE_WIFI_STATE
2. @Codii, я знаю, что это устарело, но я пытаюсь сделать это в dialogfragment. Однако в нем говорится, что «Не удается разрешить метод ‘getSystemService(java.lang. Строка)’ Я не уверен в том, что мне нужно делать. И у меня есть эти разрешения
3. У меня сработало, спасибо, и вы можете проверить,
wifi
включить использованиеfalse
или отключить использованиеtrue
Ответ №2:
Чтобы включить / отключить Wi-Fi в вашем приложении, вам необходимо использовать класс WifiManager. Создайте объект класса WifiManager, чтобы получить услуги Wi-Fi.
WifiManager wifi;
wifi=(WifiManager)getSystemService(Context.WIFI_SERVICE);
wifi.setWifiEnabled(false);//Turn off Wifi
wifi.setWifiEnabled(true);//Turn on Wifi
И вы должны указать следующие разрешения в AndroidManifest.xml
<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 с пользовательским интерфейсом, посетите этот веб-сайт
Комментарии:
1. Это более полный ответ. Включает в себя все необходимые разрешения.
2. когда я делаю это в своем проекте, но при выполнении этого кода система выдает подсказку, в которой говорится, что приложение пытается использовать wlan, разрешает ли это. и это появляется каждый раз! могу ли я включить wlan без окна запроса.
Ответ №3:
попробуйте этот код
Intent gpsOptionsIntent = new Intent( android.provider.Settings.ACTION_WIFI_SETTINGS);
startActivityForResult(gpsOptionsIntent,0);
Комментарии:
1. спасибо, но я не хочу открывать настройки. я хочу отключить или включить непосредственно из моего приложения.
Ответ №4:
Чтобы включить / отключить Wi-Fi из приложения в Android Q (Android 10), используйте панель настроек:
val panelIntent = Intent(Settings.Panel.ACTION_INTERNET_CONNECTIVITY)
startActivityForResult(panelIntent, 0)
В предыдущих версиях Android это должно работать (соответствующие разрешения должны быть добавлены в файл AndroidManifest, см. Ответы выше):
(context?.getSystemService(Context.WIFI_SERVICE) as? WifiManager)?.apply { isWifiEnabled = true /*or false*/ }
Результирующий код может выглядеть примерно так:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
val panelIntent = Intent(Settings.Panel.ACTION_INTERNET_CONNECTIVITY)
startActivityForResult(panelIntent, 0)
} else {
(context?.getSystemService(Context.WIFI_SERVICE) as? WifiManager)?.apply { isWifiEnabled = true /*or false*/ }
}
Где context
— ссылка на android.content.Context
объект.
Ответ №5:
попробуйте это
public void disableWifi(Context context, Boolean bool) {
WifiManager wifi = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
if(bool)
wifi.setWifiEnabled(false);
else
wifi.setWifiEnabled(true);
}
Комментарии:
1. Хотя это может дать ответ на вопрос, следует также объяснить, как и почему.
Ответ №6:
public class MainActivity extends AppCompatActivity {
Switch btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Switch) findViewById(R.id.switch1);
btn.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
toggleWiFi(true);
Toast.makeText(getApplicationContext(), "Wi-Fi Enabled!", Toast.LENGTH_LONG).show();
} else {
toggleWiFi(false);
Toast.makeText(getApplicationContext(), "Wi-Fi Disabled!", Toast.LENGTH_LONG).show();
}
}
});
}
public void toggleWiFi(boolean status){
WifiManager wifiManager = (WifiManager)this.getSystemService(WIFI_SERVICE);
if (status amp;amp; !wifiManager.isWifiEnabled()) {
wifiManager.setWifiEnabled(true);
} else if (!status amp;amp; wifiManager.isWifiEnabled()) {
wifiManager.setWifiEnabled(false);
}
}
}
Добавьте разрешение пользователя в файлы манифеста