Android - Wi-Fi

Android permet aux applications d'accéder pour afficher l'accès à l'état des connexions sans fil à un niveau très bas. L'application peut accéder à presque toutes les informations d'une connexion wifi.

Les informations auxquelles une application peut accéder comprennent la vitesse de liaison du réseau connecté, l'adresse IP, l'état de négociation et d'autres informations sur les réseaux. Les applications peuvent également analyser, ajouter, enregistrer, mettre fin et lancer des connexions Wi-Fi.

Android fournit WifiManagerAPI pour gérer tous les aspects de la connectivité WIFI. Nous pouvons instancier cette classe en appelantgetSystemServiceméthode. Sa syntaxe est donnée ci-dessous -

WifiManager mainWifiObj;
mainWifiObj = (WifiManager) getSystemService(Context.WIFI_SERVICE);

Pour analyser une liste de réseaux sans fil, vous devez également enregistrer votre BroadcastReceiver. Il peut être enregistré en utilisantregisterReceiverméthode avec l'argument de votre objet de classe de récepteur. Sa syntaxe est donnée ci-dessous -

class WifiScanReceiver extends BroadcastReceiver {
   public void onReceive(Context c, Intent intent) {
   }
}

WifiScanReceiver wifiReciever = new WifiScanReceiver();
registerReceiver(wifiReciever, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));

L'analyse wifi peut être lancée en appelant le startScanméthode de la classe WifiManager. Cette méthode renvoie une liste d'objets ScanResult. Vous pouvez accéder à n'importe quel objet en appelant legetméthode de liste. Sa syntaxe est donnée ci-dessous -

List<ScanResult> wifiScanList = mainWifiObj.getScanResults();
String data = wifiScanList.get(0).toString();

En dehors de la numérisation, vous pouvez avoir plus de contrôle sur votre WIFI en utilisant les méthodes définies dans la classe WifiManager. Ils sont répertoriés comme suit -

Sr. Non Méthode et description
1

addNetwork(WifiConfiguration config)

Cette méthode ajoute une nouvelle description de réseau à l'ensemble des réseaux configurés.

2

createWifiLock(String tag)

Cette méthode crée un nouveau WifiLock.

3

disconnect()

Cette méthode se dissocie du point d'accès actuellement actif.

4

enableNetwork(int netId, boolean disableOthers)

Cette méthode permet d'associer à un réseau précédemment configuré.

5

getWifiState()

Cette méthode obtient l'état activé du Wi-Fi

6

isWifiEnabled()

Cette méthode retourne si le Wi-Fi est activé ou désactivé.

sept

setWifiEnabled(boolean enabled)

Cette méthode active ou désactive le Wi-Fi.

8

updateNetwork(WifiConfiguration config)

Cette méthode met à jour la description de réseau d'un réseau configuré existant.

Exemple

Voici un exemple illustrant l'utilisation du WIFI. Il crée une application de base qui ouvre votre wifi et ferme votre wifi

Pour expérimenter cet exemple, vous devez l'exécuter sur un appareil réel sur lequel le wifi est activé.

Pas La description
1 Vous utiliserez Android Studio pour créer une application Android sous un package com.example.sairamkrishna.myapplication.
2 Modifiez le fichier src / MainActivity.java pour ajouter du code WebView.
3 Modifiez le res / layout / activity_main pour ajouter les composants XML respectifs
4 Modifiez le fichier AndroidManifest.xml pour ajouter les autorisations nécessaires
5 Exécutez l'application et choisissez un appareil Android en cours d'exécution, installez l'application dessus et vérifiez les résultats.

Voici le contenu du fichier d'activité principal modifié 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);
         }
      });
   }
}

Voici le contenu modifié du 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>

Voici le contenu de AndroidManifest.xml fichier.

<?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>

Essayons d'exécuter votre application. Je suppose que vous avez connecté votre appareil mobile Android à votre ordinateur. Pour exécuter l'application à partir du studio Android, ouvrez l'un des fichiers d'activité de votre projet et cliquez sur l' icône Exécuter dans la barre d'outils. Avant de démarrer votre application, Android studio affichera la fenêtre suivante pour sélectionner une option dans laquelle vous souhaitez exécuter votre application Android.

Sélectionnez votre appareil mobile en option et il affichera l'image suivante−

Cliquez maintenant sur le bouton Désactiver le wifi, puis la sortie de l'échantillon devrait ressembler à ceci -