Android – Wi-Fi
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 wifiScanList = mainWifiObj.getScanResults(); String data = wifiScanList.get(0).toString();
Помимо простого сканирования, вы можете лучше контролировать свой WIFI с помощью методов, определенных в классе WifiManager. Они перечислены следующим образом –
addNetwork (конфигурация WifiConfiguration)
Этот метод добавляет новое описание сети в набор настроенных сетей.
createWifiLock (строковый тег)
Этот метод создает новый WifiLock.
Этот метод отсоединяется от текущей активной точки доступа.
enableNetwork (int netId, логическое значение disableOthers)
Этот метод позволяет связать ранее настроенную сеть.
Этот метод получает состояние Wi-Fi включен
Этот метод возвращает, включен ли Wi-Fi или нет.
setWifiEnabled (логическое значение включено)
Этот метод включает или отключает Wi-Fi.
updateNetwork (конфигурация WifiConfiguration)
Этот метод обновляет сетевое описание существующей настроенной сети.
addNetwork (конфигурация WifiConfiguration)
Этот метод добавляет новое описание сети в набор настроенных сетей.
createWifiLock (строковый тег)
Этот метод создает новый WifiLock.
Этот метод отсоединяется от текущей активной точки доступа.
enableNetwork (int netId, логическое значение disableOthers)
Этот метод позволяет связать ранее настроенную сеть.
Этот метод получает состояние Wi-Fi включен
Этот метод возвращает, включен ли 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"?> 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"> 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" /> 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" /> 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" />
Ниже приводится содержимое файла AndroidManifest.xml .
Давайте попробуем запустить ваше приложение. Я предполагаю, что вы подключили свое фактическое мобильное устройство Android к компьютеру. Чтобы запустить приложение из студии Android, откройте один из файлов деятельности вашего проекта и нажмите «Выполнить». значок с панели инструментов. Перед запуском приложения Android Studio отобразит следующее окно, чтобы выбрать опцию, в которой вы хотите запустить приложение Android.
Выберите ваше мобильное устройство в качестве опции, и оно покажет следующее изображение
Теперь нажмите на кнопку «отключить Wi-Fi». Пример вывода должен быть таким:
Android — Wi-Fi
Android allows applications to access to view the access the state of the wireless connections at very low level. Application can access almost all the information of a wifi connection.
The information that an application can access includes connected network’s link speed,IP address, negotiation state, other networks information. Applications can also scan, add, save, terminate and initiate Wi-Fi connections.
Android provides WifiManager API to manage all aspects of WIFI connectivity. We can instantiate this class by calling getSystemService method. Its syntax is given below −
WifiManager mainWifiObj; mainWifiObj = (WifiManager) getSystemService(Context.WIFI_SERVICE);
In order to scan a list of wireless networks, you also need to register your BroadcastReceiver. It can be registered using registerReceiver method with argument of your receiver class object. Its syntax is given below −
class WifiScanReceiver extends BroadcastReceiver < public void onReceive(Context c, Intent intent) < >> WifiScanReceiver wifiReciever = new WifiScanReceiver(); registerReceiver(wifiReciever, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
The wifi scan can be start by calling the startScan method of the WifiManager class. This method returns a list of ScanResult objects. You can access any object by calling the get method of list. Its syntax is given below −
List wifiScanList = mainWifiObj.getScanResults(); String data = wifiScanList.get(0).toString();
Apart from just Scanning, you can have more control over your WIFI by using the methods defined in WifiManager class. They are listed as follows −
addNetwork(WifiConfiguration config)
This method add a new network description to the set of configured networks.
createWifiLock(String tag)
This method creates a new WifiLock.
This method disassociate from the currently active access point.
enableNetwork(int netId, boolean disableOthers)
This method allow a previously configured network to be associated with.
This method gets the Wi-Fi enabled state
This method return whether Wi-Fi is enabled or disabled.
setWifiEnabled(boolean enabled)
This method enable or disable Wi-Fi.
updateNetwork(WifiConfiguration config)
This method update the network description of an existing configured network.
Example
Here is an example demonstrating the use of WIFI. It creates a basic application that open your wifi and close your wifi
To experiment with this example, you need to run this on an actual device on which wifi is turned on.
Steps | Description |
---|---|
1 | You will use Android studio to create an Android application under a package com.example.sairamkrishna.myapplication. |
2 | Modify src/MainActivity.java file to add WebView code. |
3 | Modify the res/layout/activity_main to add respective XML components |
4 | Modify the AndroidManifest.xml to add the necessary permissions |
5 | Run the application and choose a running android device and install the application on it and verify the results. |
Following is the content of the modified main activity file 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); >>); > >
Following is the modified content of the xml res/layout/activity_main.xml.
Following is the content of AndroidManifest.xml file.
Let’s try to run your application. I assume you have connected your actual Android Mobile device with your computer. To run the app from Android studio, open one of your project’s activity files and click Run icon from the toolbar. Before starting your application, Android studio will display following window to select an option where you want to run your Android application.
Select your mobile device as an option and It will shows the following image−
Now click on disable wifi button.then the sample output should be like this −