Android Wi-Fi Tutorial

Android tillater programmer å få tilgang til å se tilgang til status for de trådløse tilkoblingene på svært lavt nivå. Søknad kan få tilgang til nesten all informasjon fra en wifi-tilkobling.

Den informasjon som et program kan få tilgang inkluderer tilkoblet nettverket linjehastighet, IP-adresse, forhandling tilstand, annen informasjon nettverk. Søknader kan også skanne, legge til, lagre, avslutte og starte Wi-Fi-tilkoblinger.

Android gir WifiManager
API for å håndtere alle aspekter av WIFI-tilkobling. Vi kan bruke denne klassen ved å ringe getSystemService
metoden. Syntaksen er gitt nedenfor −
WifiManager mainWifiObj; mainWifiObj = (WifiManager) getSystemService (Context.WIFI_SERVICE);

For å skanne en liste over trådløse nettverk, må du også registrere din BroadcastReceiver. Det kan registreres ved hjelp av registerReceiver
metode med argument for mottakeren klasse objekt. Syntaksen er gitt nedenfor −
klasse WifiScanReceiver strekker BroadcastReceiver {public void OnReceive (Context c, Intent hensikt) {}} WifiScanReceiver wifiReciever = new WifiScanReceiver (); registerReceiver (wifiReciever, ny IntentFilter (WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));

Wifi skanningen kan starte ved å ringe startScan
metoden i WifiManager klassen. Denne metoden returnerer en liste over ScanResult stedene. Du får tilgang til et objekt ved å ringe
metode listen. Syntaksen er gitt nedenfor −
List < ScanResult > wifiScanList = mainWifiObj.getScanResults (); String data = wifiScanList.get (0) .toString ();

Bortsett fra akkurat Scanning, kan du ha mer kontroll over WIFI ved å bruke metodene som er definert i WifiManager klasse. De er oppført som følger −
Sr.NoMethod & Description1 addNetwork (WifiConfiguration config)

Denne metoden legge et nytt nettverk beskrivelse til settet av konfigurerte nettverk.
2 createWifiLock (String tag)

Denne metoden skaper en ny WifiLock.
3 frakobling ()

Denne metoden fjerne fra det aktive tilgangspunktet.
4 enableNetwork (int nettid, boolske disableOthers)

Denne metoden tillater en tidligere konfigurert nettverk for å bli assosiert med.
5 getWifiState ()

Denne metoden får Wi-Fi aktivert tilstand
6 isWifiEnabled ()

Denne metoden retur vidt Wi-Fi er aktivert eller deaktivert.
7 setWifiEnabled (boolsk aktivert)

Denne metoden aktivere eller deaktivere Wi-Fi.
8 updateNetwork (WifiConfiguration config)

Denne metoden oppdatere nettverket beskrivelse av en eksisterende konfigurert nettverk.

Eksempel

Her er et eksempel som demonstrerer bruk av WIFI. Det skaper en grunnleggende program som skanner en liste over trådløse nettverk og fylle dem i en listevisning.

For å eksperimentere med dette eksempelet, må du kjøre dette på en faktisk enhet der wifi er slått på.
StepsDescription1You vil bruke Android studio for å lage en Android-applikasjon under en pakke com.example.sairamkrishna.myapplication. Mens du oppretter dette prosjektet, må du Target SDK og kompilere med på den nyeste versjonen av Android SDK til å bruke høyere nivåer av APIs.2Modify src /MainActivity.java fil for å legge WebView code.3Modify res /layout /activity_main å legge respektive XML components4Modify den AndroidManifest.xml å legge de nødvendige permissions5Run programmet og velge en som kjører Android-enhet, og installere programmet på den og verifisere resultatene.

Følgende er innholdet i den modifiserte hovedaktivitet filen src /MainActivity.java
.
pakken com.example.sairamkrishna.myapplication, import android.app.Activity, import android.content.BroadcastReceiver, import android.content.Context, import android.content.Intent, import android.content.IntentFilter; import android. graphics.Color, import android.net.wifi.ScanResult, import android.net.wifi.WifiManager, import android.os.Bundle, import android.view.Menu, import android.view.MenuItem, import android.view.View; import android.widget.ArrayAdapter, import android.widget.Button, import android.widget.EditText, import android.widget.ListView, import android.widget.TextView, import android.widget.Toast, import java.util.List; offentlig klasse MainActivity strekker Aktivitet {Listview lv; WifiManager wifi; String wifis []; WifiScanReceiver wifiReciever; Override Beskyttet void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); lv = (Listview) findViewById (R.id.listView); wifi = (WifiManager) getSystemService (Context.WIFI_SERVICE); wifiReciever = new WifiScanReceiver (); wifi.startScan (); } Beskyttet void onPause () {unregisterReceiver (wifiReciever); super.onPause (); } Beskyttet void onResume () {registerReceiver (wifiReciever, ny IntentFilter (WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)); super.onResume (); }Override Public boolean onCreateOptionsMenu (Meny menyen) {//Blås menyen; dette legger til elementer i handlingsfeltet hvis det er til stede. . getMenuInflater () blåse (R.menu.menu_main, menyen); return true; }Override Public boolean onOptionsItemSelected (MENUITEM element) {//Håndtak handlingen bar varen klikk her. Handlingsfeltet vil //automatisk håndtere klikker på Hjem /Opp-knappen, så lenge //som du angir en forelder aktivitet i AndroidManifest.xml. int id = item.getItemId (); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) {return true; } Returnere super.onOptionsItemSelected (element); } Private class WifiScanReceiver strekker BroadcastReceiver {public void OnReceive (Context c, Intent hensikt) {List < ScanResult > wifiScanList = wifi.getScanResults (); wifis = new String [wifiScanList.size ()]; for (int i = 0; i < wifiScanList.size (); i ++) {wifis [i] = ((wifiScanList.get (i)) toString ().); } Lv.setAdapter (ny ArrayAdapter < String > (getApplicationContext (), android.R.layout.simple_list_item_1, wifis)); }}}

Følgende er endret innholdet i xml res /layout /activity_main.xml
< RelativeLayout xmlns:. Android = "http://schemas.android.com/apk /res /android "xmlns: verktøy =" 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" verktøy: kontekst = ". MainActivity" > < TextView android: text = "Wifi" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: id = "+ id /textview" android: Tekststørrelse = "35dp" android: layout_alignParentTop = "true" android : layout_centerHorizontal = "true" /> < TextView android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "Tutorials point" android: id = "+ id /textView" android: layout_below = "+ id /textview" android: layout_centerHorizontal = "true" android: textcolor = "# ff7aff24" android: Tekststørrelse = "35dp" /> < mageView android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: id = "+ id /bildeVis" android: src = "@ teikne /abc" android: layout_below = "+ id /textView" android : layout_centerHorizontal = "true" /> < Listview android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: id = "+ id /Listview" android: layout_below = "+ id /bildeVis" android: layout_alignParentLeft = "true" android: layout_alignParentStart = "true" android: bakgrunn = "# fff5d376" /> < /RelativeLayout >

Følgende er innholdet av AndroidManifest.xml
fil
< xml version = "1.0".? encoding = "utf-8" > < manifest xmlns:? android = "http://schemas.android.com/apk/res/android" pakken = "com.example.sairamkrishna.myapplication" > < bruker-tillatelse android: name = "android.permission.ACCESS_WIFI_STATE" /> < bruker-tillatelse android: name = "android.permission.CHANGE_WIFI_STATE" /> < søknad android: allowBackup = "true" android: icon = "@ Mipmap /ic_launcher" android: label = "@ streng /APP_NAME" android: tema = "@ stil /AppTheme" > < aktivitet android: ". MainActivity" name = android: label = "@ streng /APP_NAME" > < intent-filter > < handling android: name = "android.intent.action.MAIN" /> < kategori android: name = "android.intent.category.LAUNCHER" /> < /intent-filter > < /aktivitets > < /søknad > < /manifest >

La oss prøve å kjøre programmet. Jeg antar at du har koblet den faktiske Android Mobile-enhet med datamaskinen. For å kjøre programmet fra Android studio, åpne en av prosjektets aktivitets filer, og klikk Kjør ikonet fra verktøylinjen. Før du starter programmet, vil Android studio vise følgende vindu for å velge et alternativ hvor du vil kjøre Android-applikasjon.

Velg den mobile enheten som et alternativ, og deretter sjekke den mobile enheten som vil vise mobilskjermen fylt med trådløse nettverk rundt deg. Det er vist nedenfor −

Legg merke til den informasjonen som har blitt returnert til deg. Den inneholder mye informasjon om hver av det trådløse nettverket oppdages.

Over bildet viser forskjellige wifi-tilkoblinger som er forbundet med enhetene dine Anmeldelser