Android ermöglicht es Anwendungen, Zugriff auf den Zugang des Zustands der drahtlosen Verbindungen auf sehr niedrigem Niveau zu sehen. Die Anwendung kann fast alle Daten eines WiFi-Verbindung zugreifen.
Die Information, dass eine Anwendung zugreifen können, enthält die Verbindungsgeschwindigkeit angeschlossenen Netzwerk, IP-Adresse, Verhandlung Zustand, andere Netzwerke Informationen. Anwendungen können auch scannen, zu ergänzen, zu speichern, zu kündigen und Wi-Fi-Verbindungen zu initiieren.
Android bietet WifiManager API, um alle Aspekte der WiFi-Verbindung zu verwalten. Wir können diese Klasse instanziieren, indem SiegetSystemService Methode. Die Syntax ist unten angegeben -
WifiManager mainWifiObj; mainWifiObj = (WifiManager) getSystemService(Context.WIFI_SERVICE);
Um eine Liste der drahtlosen Netzwerke zu scannen, müssen Sie auch Ihren BroadcastReceiver registrieren. Es kann unter Verwendung registriert werdenregisterReceiver Methode mit dem Argument des Receivers Klassenobjekt.Die Syntax ist unten angegeben -
class WifiScanReceiver extends BroadcastReceiver { public void onReceive(Context c, Intent intent) { } } WifiScanReceiver wifiReciever = new WifiScanReceiver(); registerReceiver(wifiReciever, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
Die Wi-Fi-Scan kann beginnen, indem Sie die Startscan Methode der WifiManager Klasse. Diese Methode liefert eine Liste der ScanResult Objekte.Sie können jedes Objekt durch einen Aufruf der Zugriff get Methode der Liste.Die Syntax ist unten angegeben -
List<ScanResult> wifiScanList = mainWifiObj.getScanResults(); String data = wifiScanList.get(0).toString();
Abgesehen von nur Scannen, können Sie haben mehr Kontrolle über Ihren WIFI unter Verwendung der in WifiManager Klasse definierten Methoden. Sie werden wie folgt aufgeführt -
Sr.No | Verfahren & Beschreibung |
---|---|
1 | addNetwork (WifiConfiguration config)
Diese Methode fügen Sie eine neue Netzwerkbeschreibung auf den Satz von konfigurierten Netzwerken.
|
2 | createWifiLock (String-Tag)
Diese Methode erstellt ein neues WifiLock.
|
3 | disconnect ()
Diese Methode distanzieren von der gerade aktiven Access Point.
|
4 | enableNetwork (int netId, boolean disableOthers)
Diese Methode ermöglicht eine zuvor konfigurierte Netzwerk zugeordnet werden.
|
5 | getWifiState ()
Diese Methode erhält die Wi-Fi-fähigen Zustand
|
6 | isWifiEnabled ()
Diese Methode Rück ob Wi-Fi aktiviert oder deaktiviert ist.
|
7 | setWifiEnabled (boolean enabled)
Diese Methode aktivieren oder deaktivieren Sie Wi-Fi.
|
8 | updateNetwork (WifiConfiguration config)
Diese Methode aktualisiert die Netzwerk Beschreibung einer vorhandenen konfigurierten Netzwerk.
|
Beispiel
Hier ist ein Beispiel demonstriert die Verwendung von WLAN. Es schafft eine grundlegende Anwendung, eine Liste der drahtlosen Netzwerke scannt und füllen Sie sie in einer Listenansicht.
Um bei diesem Beispiel zu experimentieren, müssen Sie diese auf einem Gerät, auf dem Wi-Fi eingeschaltet wird ausgeführt.
Schritte | Bezeichnung |
---|---|
1 | Sie werden Android-Studio verwenden, um ein Android-Anwendung unter einem Paket com.example.sairamkrishna.myapplication erstellen.Bei der Erstellung dieses Projekt, stellen Sie sicher SDK Ziel und Kompilieren Sie mit der neuesten Version des Android SDK zu höheren Ebenen der APIs verwenden. |
2 | Ändern src / MainActivity.java Datei auf WebView Code hinzufügen. |
3 | Ändern Sie die res / layout / activity_main zum jeweiligen XML-Komponenten hinzufügen |
4 | Ändern Sie die AndroidManifest.xml, die notwendigen Berechtigungen hinzufügen |
5 | Führen Sie die Anwendung, und wählen Sie einen laufenden Android-Gerät und installieren Sie die Anwendung und überprüfen Sie die Ergebnisse. |
Im Folgenden ist der Gehalt des modifizierten Haupttätigkeit Datei src /MainActivity.java.
package 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; public class MainActivity extends Activity { ListView lv; WifiManager wifi; String wifis[]; WifiScanReceiver wifiReciever; @Override protected 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(); } protected void onPause() { unregisterReceiver(wifiReciever); super.onPause(); } protected void onResume() { registerReceiver(wifiReciever, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)); super.onResume(); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } private class WifiScanReceiver extends BroadcastReceiver{ public void onReceive(Context c, Intent intent) { 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(new ArrayAdapter<String>(getApplicationContext(),android.R.layout.simple_list_item_1,wifis)); } } }
Im Anschluss wird der modifizierte Inhalt der XML-res / layout /activity_main.xml.
<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"> <TextView android:text="Wifi" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/textview" android:textSize="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:textSize="35dp" /> <mageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/imageView" android:src="@drawable/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/imageView" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:background="#fff5d376" /> </RelativeLayout>
Im Anschluss ist der Inhalt der AndroidManifest.xml Datei.
<?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>
Lassen Sie uns versuchen, um Ihre Anwendung auszuführen. Ich nehme an, Sie Ihre aktuelle Android-Gerät mit dem Computer verbunden haben. Um die App vom Android-Studio, öffnen Sie eine der Aktivität Dateien Ihres Projekt auszuführen, und klicken Sie auf
Ausführen-Symbol in der Symbolleiste. Vor dem Start der Anwendung wird Android Studio Display folgende Fenster, um eine Option, wo Sie Ihre Android-Anwendung ausgeführt werden soll.
Wählen Sie Ihr Mobilgerät als Option und prüfen Sie dann Ihr mobiles Gerät, das Ihr Handy-Display mit drahtlosen Netzwerken um Sie herum gefüllt anzeigt. Es wird unten gezeigt -
Beachten Sie die Informationen, die Sie zurückgegeben wurde. Er enthält viele Informationen über jeden von dem drahtlosen Netz erkannt wird.
Bild oben zeigt verschiedene WiFi-Verbindungen, die mit den Geräten verbunden sind
0 التعليقات:
Kommentar veröffentlichen