Главная » Управляем доступом к Wi-Fi адаптеру на устройстве | |
В этот раз мы научимся простой но нужной вещи - включать и выключать на Android устройстве Wi-Fi соединение. Процесс взаимодействия с Wi-Fi довольно простой, но тем не менее, в нем надо разобраться. Программа будет состоять из переключателя Toggle Button, нажатие по которому будет включать и выключать Wi-Fi соединение. Для начала, создадим новый проект, выбираем Blank Activity. Первым делом нужно открыть файл AndroidManifest.xml и добавить разрешения на получение текущего статуса Wi-Fi и возможности смены статуса:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
Теперь сделаем интерфейс нашему приложению. Для этого откроем файл activity_main.xml и добавим туда картинку (для красоты) и переключатель Toggle Button:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:padding="5dp">
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:src="@drawable/wifi"
android:layout_gravity="center"/>
<ToggleButton
android:id="@+id/wifi_switcher"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="10dp"
android:checked="false"
android:text="Wi-Fi Settings"
android:textOff="Выкл"
android:textOn="Вкл"
android:layout_gravity="center"/>
</LinearLayout>
Я использовал эту картинку: Ну а вы можете взять любую другую. Теперь переходим к работе с кодом в MainActivity.java. Здесь мы объявим и инициализируем Toggle Button, установим для него слушателя изменения состояний OnCheckedChangeListener, ну и основное, опишем метод включения и выключения Wi-Fi соединения в зависимости от того, какое значение принимает переключатель Toggle Button: если он находиться в состоянии isChecked, то есть включенном, соответственно этому состоянию включаем на устройстве Wi-Fi, в противном случае - выключаем. Доступ к управлению Wi-Fi соединением происходит через WifiManager, мы создаем экземпляр такого менеджера и с его помощью включаем или выключаем Wi-Fi, в команде setWifiEnabled () выставляя значение true для включения Wi-Fi, и false - для выключения. Код файла MainActivity.java будет следующим:
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.widget.CompoundButton;
import android.widget.Toast;
import android.app.Activity;
import android.content.Context;
import android.widget.ToggleButton;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Инициализируем элемент Toggle Button:
ToggleButton toggle = (ToggleButton) findViewById(R.id.wifi_switcher);
//Настраиваем слушателя изменения состояния переключателя:
toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
//Если Wi-FI включен - Toast сообщение об этом:
if (isChecked) {
toggleWiFi(true);
Toast.makeText(getApplicationContext(), "Wi-Fi Включен!", Toast.LENGTH_SHORT).show();
}
//Если Wi-FI выключен - Toast сообщение об этом:
else {
toggleWiFi(false);
Toast.makeText(getApplicationContext(), "Wi-Fi Выключен!", Toast.LENGTH_SHORT).show();
}
}
});
}
//Описываем сам метод включения Wi-Fi:
public void toggleWiFi(boolean status) {
WifiManager wifiManager = (WifiManager) this .getSystemService(Context.WIFI_SERVICE);
//Статус true соответствует включенному состоянию Wi-Fi, мы включаем
//его с помощью команды wifiManager.setWifiEnabled(true):
if (status == true && !wifiManager.isWifiEnabled()) {
wifiManager.setWifiEnabled(true);
}
//А статус false соответствует выключенному состоянию Wi-Fi мы выключаем
// его с помощью команды wifiManager.setWifiEnabled(false):
else if (status == false && wifiManager.isWifiEnabled()) {
wifiManager.setWifiEnabled(false);
}
}
}
Попробуем теперь наше приложение на работоспособность. Запускаем и смотрим на результат: | |
|
Всего комментариев: 0 | |
|
|