به نام خدا،مبحث امروزی ما در مورد روشن و خاموش کردن وای فای (Wifi) در برنامه نویسی اندروید هست.در این اموزش با WifiManager و نحوه کار کردن با اون بیشتر اشنا میشیم.کار کردن با وای فای منیجر (WifiManager) بسیار ساده است و در پروژه ای که میخواهیم باهم ایجاد کنیم کارکردش رو میتونید ببینید.
یک پروژه جدید ایجاد میکنیم و اسمش رو Wifi قرار میدیم،بروی لایه از یک تکست ویو و دو تا باتن قرار میدیم،وظیفه این دکمه ها روشن و خاموش کردن شبکه وای فای هست و کار تکست ویو نمایش یک متن هست.میخواهیم به دکمه های برنامه یک رویداد کلیک بنویسم تا وقتی روی هر کدوم از دکمه ها کلیک شد کار خواصی رو برای ما انجام بده.در زیر کدهای کامل لایه و یا 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:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="42dp" android:textSize="25sp" android:textStyle="bold" android:text="Android Wifi" /> <Button android:id="@+id/button1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@+id/textView1" android:layout_centerHorizontal="true" android:layout_marginTop="79dp" android:text="wifi Roshan" /> <Button android:id="@+id/button2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@+id/button1" android:layout_centerHorizontal="true" android:layout_marginTop="15dp" android:text="Wifi Khamosh" /> </RelativeLayout>
بعد از اینکه لایه برنامه رو کامل کردیم میریم سراغ MainActivity.java تا کدنویسی بخش جاوای برنامه رو هم کامل کنیم. در این بخش دکمه های رو که بروی لایه قرار دادیم رو معرفی می کنیم تا برای هریک از دکمه یک رویداد OnClickListener تعریف کنیم.بعد از تعریف کردن رویداد کلیک وای فای منیجر(WifiManager) رو به دکمه اول معرفی میکنیم و سپس با نوشتن دستور wifi.setWifiEnabled(true) روشن کردن وای فای رو به برنامه میفرستیم تا وای فای روشن بشه و در اخر هم یک توست به رویداد اضافه می کنیم تا به کاربر پیام روشن شدن وای فای رو بده.برای دکمه دومی هم همین کار رو باید انجام بدیم ولی این بار دستور wifi.setWifiEnabled رو false میکنیم تا وای فای خاموش بشه .در زیر کدهای کامل بخش MainActivity.java رو میتونید ببینید.
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //معرفی دکمه Button wifibtnroshan = (Button) findViewById(R.id.button1); Button wifibtnKhamosh = (Button) findViewById(R.id.button2); //تعریف روبداد کلیک برای دکمه روشن کردن وای فای wifibtnroshan.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub //معرفی و نام گذاری وای فای منیجر و فعال کردن اون WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); //ست کردن وای فای برای روشن کردن wifi.setWifiEnabled(true); //معرفی توست برای نمایش یک پیام کوتاه به کاربر در هنگام روشن کردن وای فای Toast.makeText(MainActivity.this, "وای فای روشن شد", Toast.LENGTH_LONG).show(); } }); //تعریف رویداد کلیک برای دکمه خاموش کردن وای فای wifibtnKhamosh.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub WifiManager wifi1 = (WifiManager) getSystemService(Context.WIFI_SERVICE); //ست کردن وای فای برای خاموش شدن wifi1.setWifiEnabled(false); //معرفی توست برای نمایش یک پیام کوتاه به کاربر در هنگام خاموش کردن وای فای Toast.makeText(MainActivity.this, "وای فای خاموش شد", Toast.LENGTH_LONG).show(); } }); }}
در اخر هم باید یادمون باشه که دسترسی های شبکه وای فای و اینترنت رو برای برقرای ارتباط باید فعال کنید.در زیر هم میتونید کدهای بخش AndroidManifest.xml رو ببینید.
کد های زیر را طبق تصویر بالا در فایل AndroidManiFest.Xml بعد از User Sdk و قبل از Application جایگذاری نمائید
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
به ما هم سری بزنید ممنون...