Quantcast
Channel: Xamarin.Forms — Xamarin Community Forums
Viewing all articles
Browse latest Browse all 77050

Display All Available WiFi Network

$
0
0

Please Help Me...

[Activity(Label = "WiFiScannerActivity", Icon = "@mipmap/icon", Theme = "@style/MainTheme", MainLauncher = true)]
public class WiFiScannerActivity : AppCompatActivity
{
public static WifiManager wifiManager;
public static ListView listView;
private Button buttonScan;
public static IList results;
public static List arrayList = new List();
public static ArrayAdapter adapter;
private WifiReceiver wifiReceiver;

    protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);
        SetContentView(Resource.Layout.Main);
        buttonScan = FindViewById<Button>(Resource.Id.scanBtn);

            buttonScan.Click += delegate
            {
                //RunOnUiThread(() =>
                //{
                //    scanWifi();
                //});
                scanWifi();
            };


        listView = FindViewById<ListView>(Resource.Id.wifiList);
        wifiManager = (WifiManager)Application.Context.GetSystemService(Context.WifiService);

        if (!wifiManager.IsWifiEnabled)
        {
            Toast.MakeText(this, "WiFi is disabled ... We need to enable it", ToastLength.Long).Show();
            wifiManager.SetWifiEnabled(true);
        }

        adapter = new ArrayAdapter<String>(this, Android.Resource.Layout.SimpleListItem1, arrayList);
        listView.Adapter = adapter;

        scanWifi();
    }



    protected override void OnPause()
    {
        base.OnPause();
        UnregisterReceiver(wifiReceiver);
    }

    protected override void OnResume()
    {
        base.OnResume();
        RegisterReceiver(wifiReceiver, new IntentFilter(WifiManager.ScanResultsAvailableAction));

    }


    private void scanWifi()
    {
        arrayList.Clear();
        wifiReceiver = new WifiReceiver();
        RegisterReceiver(wifiReceiver, new IntentFilter(WifiManager.ScanResultsAvailableAction));
        wifiManager.StartScan();
        Toast.MakeText(this, "Scanning WiFi ...", ToastLength.Long).Show();
    }

    [BroadcastReceiver]
    [IntentFilter(new string[] { WifiManager.NetworkStateChangedAction, WifiManager.WifiStateChangedAction })]
    class WifiReceiver : BroadcastReceiver
    {
        public override void OnReceive(Context context, Intent intent)
        {
            results = wifiManager.ScanResults;
            foreach (ScanResult scanResult in results)
            {
                //arrayList.Add(scanResult.Ssid + " - " + scanResult.Capabilities);
                arrayList.Add(scanResult.Ssid);
                adapter.NotifyDataSetChanged();
            }
        }
    }

}

Viewing all articles
Browse latest Browse all 77050

Trending Articles