23 Kasım 2017 Perşembe

WifiManager Sınıfı

Giriş
Şu satırı dahil ederiz.
import android.content.BroadcastReceiver;
import android.net.wifi.WifiManager;
import android.net.wifi.ScanResult;
İzinler
En azından şu izinler olmalı
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
Belki şu izin de gerekebilir.
<uses-permission android:name="android.permission.INTERNET" />
constructor
Şöyle yaparız.
WifiManager wm = (WifiManager) getSystemService (Context.WIFI_SERVICE);
addNetwork metodu
Şöyle yaparız.
WifiConfiguration conf = ...;
...
int netId = wm.addNetwork(conf);
disconnect metodu
Şöyle yaparız.
wm.disconnect();
getConfiguredNetworks metodu
Wifi ağları şöyle bulunur.
List<WifiConfiguration> configs = wm.getConfiguredNetworks();
Şöyle yaparız.
List<WifiConfiguration> wifiList = wifiManager.getConfiguredNetworks();
for( WifiConfiguration i : wifiList ) {
  if(i.SSID != null && i.SSID.equals("\"" + networkSSID + "\"")) {
    wifiManager.disconnect();
    wifiManager.enableNetwork(i.networkId, true);
    wifiManager.reconnect();               

    break;
  }           
 }
getConnectionInfo metodu
WifiInfo nesnesi döner. Şöyle yaparız.
WifiInfo wifiInfo = manager.getConnectionInfo();
if(wifiInfo!=null) {
  ...
}
getDhcpInfo metodu
DhcpInfo nesnesi döner. Şöyle yaparız.
DhcpInfo dhcp = wm.getDhcpInfo();
getScanResults metodu
Tarama bitince sonuçları şöyle alınır.
List<ScanResult> wifiScanList = wm.getScanResults();
isWifiEnabled metodu
Örnek
Şöyle yaparız.
if(wm.isWifiEnabled()) {...}
Örnek
Şöyle yaparız.
if (!wm.isWifiEnabled()){
  wm.setWifiEnabled(true);
}
setWifiEnabled metodu
Şöyle yaparız.,
wm.setWifiEnabled(true);
startScan metodu
Tarama şöyle başlatılır. Tarama bitince sonuçları BroadcastReceiver ile alınır.
wm.startScan();
Şöyle yaparız.
MyWifiReceiver receiverWifi = new WifiReceiver();
wm.startScan();
registerReceiver(receiverWifi, new IntentFilter(
   WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
Receiver şöyledir.
class MMyWifiReceiver extends BroadcastReceiver {

  public void onReceive(Context c, Intent intent) {
    
    List<ScanResult> wifiList = wm.getScanResults();
    
      for(int i = 0; i < wifiList.size(); i++){
        ...
      }

  }
}

Hiç yorum yok:

Yorum Gönder