آموزش کار با وای فای در سی شارپ با SimpleWifi

قبلا در «این‌لینک»، کتابخانه‌ی SimpleWifi را معرفی کردیم؛ اما حالا قصد داریم تا به نحوه‌ی کار با این کتابخانه بپردازیم.

اهداف آموزش این بخش

  1. به دست آوردن وضعیت اتصال وای‌فای
  2. مدیریت رویداد تغییر وضعیت اتصال وای‌فای
  3. قطع اتصال وای‌فای
  4. گرفتن لیست نقاط دسترسی
  5. گرفتن اطلاعات نقاط دسترسی
  6. اتصال به یک نقطه‌ی دسترسی

شروع به کار

برای شروع کار با وای‌فای، ابتدا باید آبجکتی از جنس کلاس SimpleWifi.Wifi ایجاد کنیم. بنابراین جهت کوتاه‌تر شدن کد، فضای نامی SimpleWifi را using کرده و سپس به صورت زیر، یک نمونه از کلاس Wifi ایجاد می‌کنیم:

Wifi wifi = new Wifi();

1. به دست آوردن وضعیت اتصال وای‌فای

اگر بخواهیم وضعیت اتصال وای‌فای را گرفته و به کاربر اعلام کنیم، از ویژگی ConnectionStatus به صورت زیر استفاده می‌کنیم:

WifiStatus status = wifi.ConnectionStatus;

ویژگی ConnectionStatus، جهت فهمیدن متصل بودن و نبودن وای‌فای استفاده می‌شود. و این ویژگی، آبجکتی از جنس WifiStatus برمی‌گرداند که از نوع Enum بوده و شامل دو حالت Connected و Disconnected است. می‌توانیم آن را بررسی کرده و عملیات دلخواه خود را در زمان وصل بودن و نبودن وای‌فای انجام دهیم.

2. مدیریت رویداد تغییر وضعیت وای‌فای

اما فرض کنید بخواهیم وقتی کاربر از هر طریقی چه داخل نرم‌افزار و چه خود ویندوز، به وای فای متصل شد، یا اتصال را قطع کرد، ما در نرم‌افزار خود متوجه این اتفاق شویم! بنابراین بایستی رویدادی برای بررسی این قضیه تعریف شده باشد؛ این رویداد، با نام ConnectionStatusChanged در کلاس WiFi تعریف شده است. برای پیاده‌سازی آن، ابتدا یک متد با نام دلخواه و به صورت زیر بسازید:

private void Wifi_ConnectionStatusChanged(object sender, WifiStatusEventArgs e)
{
            
}

سپس آن را به صورت زیر، به ConnectionStatusChanged اختصاص دهید:

wifi.ConnectionStatusChanged += new EventHandler<WifiStatusEventArgs>(Wifi_ConnectionStatusChanged);

ورودی‌های رویداد:

  • sender: همان آبجکت wifi است که می‌توانیم آن را داخل متد رویداد، به نوع Wifi تبدیل کنیم.
  • e: از نوع WifiStatusEventArgs  بوده و شامل ویژگی NewStatus می‌باشد که همانند ConnectionStatus در مرحله‌ی قبلی، از نوع WifiStatus بوده و در اینجا وضعیت جدید را به ما اعلام می‌کند.

3. قطع اتصال وای‌فای

برای قطع اتصال وای‌فای، می‌توان از متد Disconnect()، به صورت زیر استفاده کرد:

wifi.Disconnect();

4. گرفتن لیست نقاط دسترسی

حالا فرض کنید می‌خواهیم لیست نقاط دسترسی را به دست آوریم؛ منظور همان مواردی است که می‌توانیم به آن‌ها وصل شویم. برای انجام این کار، بایستی از متد GetAccessPoints() استفاده کنیم که یک آبجکتی از جنس List<AccessPoint> برمی‌گرداند.

List<AccessPoint> list = wifi.GetAccessPoints();

5. نمایش اطلاعات نقاط دسترسی

لیستی که از طریق GetAccessPoints گرفته شده است، شامل آبجکتهایی از جنس AccessPoint می‌باشد؛ و این کلاس، ویژگی‌‌های مهم زیر را دارد:

  • Name: نام نقطه دسترسی
  • SignalStrength: میزان سیگنال
  • IsConnected: آیا به این نقطه دسترسی وصل شده است یا خیر؟!
  • IsSecure: آیا رمز دارد یا خیر

6. اتصال به یک نقطه‌ی دسترسی

برفرض که لیست بالا را دریافت کرده و به کاربر نمایش داده‌اید؛ اما چگونه می‌توان کاری کرد تا بتوان به یک نقطه‌ی دسترسی متصل شد؟! برای انجام چنین چیزی، از متد Connect که شکل ConnectAsync آن نیز وجود دارد، می‌توان استفاده کرد.

متذ Connect، دو ورودی AuthRequest (برای احراز هویت) و overrideProfile را می‌تواند دریافت کند که ورودی دوم نیز مقدار پیشفرض false دارد. در واقع توسط ورودی AuthRequest می‌توان مواردی مثل رمز را تعیین کرد و توسط ورودی دوم می‌توان مشخص کرد که آیا پروفایل قدیمی ایجاد شده برای چنین نقطه‌ی دسترسی، حذف شود یا خیر! چون اگر حذف نشود و پسورد را هم اشتباه وارد کنید، پروفایل قبلی بررسی می‌شود.

اما برای اتصال، بهتر است ابتدا ویژگی IsSecure را بررسی کنیم تا اگر نیاز به رمز داشت، رمز را گرفته و برای آبجکت AuthRequest تنظیم کنیم.

AuthRequest auth = new AuthRequest(point);
if (point.IsSecure) {
    auth.Password = "12345678";
}
point.Connect(auth);

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

cp-codfk

نظرات ثبت شده بدون دیدگاه

توضیحات پیشنهادی نظرات اشتراک