Android позволяет приложениям получать доступ для просмотра состояния доступа беспроводных соединений на очень низком уровне. Приложение может получить доступ практически ко всей информации о подключении Wi-Fi.
Информация, к которой приложение может получить доступ, включает скорость соединения в подключенной сети, IP-адрес, состояние согласования, другую информацию о сети. Приложения также могут сканировать, добавлять, сохранять, прерывать и инициировать соединения Wi-Fi.
Android предоставляет WifiManager API для управления всеми аспектами подключения WIFI. Мы можем создать экземпляр этого класса, вызвав метод getSystemService . Его синтаксис приведен ниже —
WifiManager mainWifiObj; mainWifiObj = (WifiManager) getSystemService(Context.WIFI_SERVICE);
Для сканирования списка беспроводных сетей вам также необходимо зарегистрировать свой BroadcastReceiver. Он может быть зарегистрирован с помощью метода registerReceiver с аргументом вашего объекта класса получателя. Его синтаксис приведен ниже —
class WifiScanReceiver extends BroadcastReceiver { public void onReceive(Context c, Intent intent) { } } WifiScanReceiver wifiReciever = new WifiScanReceiver(); registerReceiver(wifiReciever, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
Сканирование wifi можно запустить, вызвав метод startScan класса WifiManager. Этот метод возвращает список объектов ScanResult. Вы можете получить доступ к любому объекту, вызвав метод get из списка. Его синтаксис приведен ниже —
List<ScanResult> wifiScanList = mainWifiObj.getScanResults(); String data = wifiScanList.get(0).toString();
Помимо простого сканирования, вы можете лучше контролировать свой WIFI с помощью методов, определенных в классе WifiManager. Они перечислены следующим образом —
Sr.No | Метод и описание |
---|---|
1 |
addNetwork (конфигурация WifiConfiguration) Этот метод добавляет новое описание сети в набор настроенных сетей. |
2 |
createWifiLock (строковый тег) Этот метод создает новый WifiLock. |
3 |
Отключить() Этот метод отсоединяется от текущей активной точки доступа. |
4 |
enableNetwork (int netId, логическое значение disableOthers) Этот метод позволяет связать ранее настроенную сеть. |
5 |
getWifiState () Этот метод получает состояние Wi-Fi включен |
6 |
isWifiEnabled () Этот метод возвращает, включен ли Wi-Fi или нет. |
7 |
setWifiEnabled (логическое значение включено) Этот метод включает или отключает Wi-Fi. |
8 |
updateNetwork (конфигурация WifiConfiguration) Этот метод обновляет сетевое описание существующей настроенной сети. |
addNetwork (конфигурация WifiConfiguration)
Этот метод добавляет новое описание сети в набор настроенных сетей.
createWifiLock (строковый тег)
Этот метод создает новый WifiLock.
Отключить()
Этот метод отсоединяется от текущей активной точки доступа.
enableNetwork (int netId, логическое значение disableOthers)
Этот метод позволяет связать ранее настроенную сеть.
getWifiState ()
Этот метод получает состояние Wi-Fi включен
isWifiEnabled ()
Этот метод возвращает, включен ли Wi-Fi или нет.
setWifiEnabled (логическое значение включено)
Этот метод включает или отключает Wi-Fi.
updateNetwork (конфигурация WifiConfiguration)
Этот метод обновляет сетевое описание существующей настроенной сети.
пример
Вот пример, демонстрирующий использование WIFI. Это создает основное приложение, которое открывает ваш Wi-Fi и закрывает ваш Wi-Fi
Чтобы поэкспериментировать с этим примером, вам нужно запустить его на реальном устройстве, на котором включен Wi-Fi.
меры | Описание |
---|---|
1 | Вы будете использовать Android studio для создания приложения Android в пакете com.example.sairamkrishna.myapplication. |
2 | Измените файл src / MainActivity.java, чтобы добавить код WebView. |
3 | Измените res / layout / activity_main, чтобы добавить соответствующие компоненты XML |
4 | Измените AndroidManifest.xml, чтобы добавить необходимые разрешения |
5 | Запустите приложение и выберите работающее устройство Android, установите на него приложение и проверьте результаты. |
Ниже приводится содержимое измененного основного файла активности src / MainActivity.java .
package com.example.sairamkrishna.myapplication; import android.net.wifi.WifiManager; import android.os.Bundle; import android.app.Activity; import android.content.Context; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class MainActivity extends Activity { Button enableButton,disableButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); enableButton=(Button)findViewById(R.id.button1); disableButton=(Button)findViewById(R.id.button2); enableButton.setOnClickListener(new OnClickListener(){ public void onClick(View v){ WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); wifi.setWifiEnabled(true); } }); disableButton.setOnClickListener(new OnClickListener(){ public void onClick(View v){ WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); wifi.setWifiEnabled(false); } }); } }
Ниже приводится измененное содержимое файла xml res / layout / activity_main.xml .
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/imageView" android:src="@drawable/abc" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="76dp" android:text="Enable Wifi" android:layout_centerVertical="true" android:layout_alignEnd="@+id/imageView" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Disable Wifi" android:layout_marginBottom="93dp" android:layout_alignParentBottom="true" android:layout_alignStart="@+id/imageView" /> </RelativeLayout>
Ниже приводится содержимое файла AndroidManifest.xml .
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.sairamkrishna.myapplication" > <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
Давайте попробуем запустить ваше приложение. Я предполагаю, что вы подключили свое фактическое мобильное устройство Android к компьютеру. Чтобы запустить приложение из студии Android, откройте один из файлов деятельности вашего проекта и нажмите «Выполнить». значок с панели инструментов. Перед запуском приложения Android Studio отобразит следующее окно, чтобы выбрать опцию, в которой вы хотите запустить приложение Android.
Выберите ваше мобильное устройство в качестве опции, и оно покажет следующее изображение
Теперь нажмите на кнопку «отключить Wi-Fi». Пример вывода должен быть таким: