به نام خدا،مبحث امروزی ما در مورد وای فای (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 رو ببینید.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.appinapps.wifi"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<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>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.appinapps.wifi.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>