1.什么是WIFI
      
    Wi-Fi 原先是無線保真的縮寫,Wi-Fi 的英文全稱為wireless fidelity,讀音為waifai(拼音讀法,均為一聲),英文音標/?wa?fa?/, wireless [英][?wa??l?sfidelity[英] [fi?deliti]。無線局域網的范疇是指“無線相容性認證”,實質上是一種商業認證,同時也是一種無線聯網的技術,以前通過網線連接電腦,而現在則是通過無線電波來連網;常見的就是一個無線路由器,那么在這個無線路由器的電波覆蓋的有效范圍都可以采用WIFI連接方式進行聯網,如果無線路由器連接了一條ADSL線路或者別的上網線路,則又被稱為“熱點”。


2.獲取WIFI網卡的狀態
  
  WIFI網卡的狀態是由一系列的整形常量來表示的:
1.WIFI_STATE_DISABLED:    WIFI網卡不可用操作     1
2.WIFI_STATE_DISABLING:  WIFI正在關閉   0
3.WIFI_STATE_ENABLED:     WIFI網卡可用  3
4.WIFI_STATE_ENABLING:   WIFI網卡正在打開  2 
5.WIFI_STATE_UNKNOWN:  未知網卡狀態  4

3.操作WIFI所需要的權限
CHANGE_NETWORK_STATE :允許修改網絡狀態的權限。
CHANGE_WIFI_STATE
:允許修改WIFI狀態的權限。

ACCESS_NETWORK_STATE
:允許訪問網絡狀態的權限。

ACCESS_WIFI_STATE:允許訪問WIFI狀態的權限。


4.改變WIFI網卡的狀態
對WIFI網卡進行操作需要通過WifiManager對象來進行,
獲取該對象的方法如下:
WifiManager wifiManager = 
 (WifiManager)Context.getSystemService(Service.WIFI_SERVICE);
打開WIFI網卡
wifiManager.setWifiEnabled(true);
關閉 WIFI網卡
wifiManager.setWifiEnabled(false);
獲取網卡當前的狀態
wifiManager.getWifiState();


main.xml:
 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="fill_parent"
 4     android:layout_height="fill_parent"
 5     android:orientation="vertical" >
 6 
 7     <TextView
 8         android:layout_width="fill_parent"
 9         android:layout_height="wrap_content"
10         android:text="@string/hello" />
11 
12     <Button
13         android:id="@+id/startWifi"
14         android:layout_width="fill_parent"
15         android:layout_height="wrap_content" 
16         android:text="@string/startWifi"/>
17 
18     <Button
19         android:id="@+id/stopWifi"
20         android:layout_width="fill_parent"
21         android:layout_height="wrap_content" 
22         android:text="@string/stopWifi"/>
23 
24     <Button
25         android:id="@+id/checkWifi"
26         android:layout_width="fill_parent"
27         android:layout_height="wrap_content" 
28         android:text="@string/checkWifi"/>
29 
30 </LinearLayout>


strings.xml:
 1 <?xml version="1.0" encoding="utf-8"?>
 2 <resources>
 3 
 4     <string name="hello">Hello World, WifiActivity!</string>
 5     <string name="app_name">Wifi</string>
 6     <string name="startWifi">啟動Wifi</string>
 7     <string name="stopWifi">停止Wifi</string>
 8     <string name="checkWifi">檢測Wifi狀態</string>
 9 
10 </resources>

AndroidManifest.xml:
 1 <?xml version="1.0" encoding="utf-8"?>
 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
 3     package="gaolei.wifi"
 4     android:versionCode="1"
 5     android:versionName="1.0" >
 6 
 7     <uses-sdk android:minSdkVersion="8" />
 8 
 9     <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
10     <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
11     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
12     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
13 
14     <application
15         android:icon="@drawable/ic_launcher"
16         android:label="@string/app_name" >
17         <activity
18             android:name=".WifiActivity"
19             android:label="@string/app_name" >
20             <intent-filter>
21                 <action android:name="android.intent.action.MAIN" />
22 
23                 <category android:name="android.intent.category.LAUNCHER" />
24             </intent-filter>
25         </activity>
26     </application>
27 
28 </manifest>


WifiActivity:
 1 package gaolei.wifi;
 2 
 3 import android.app.Activity;
 4 import android.content.Context;
 5 import android.net.wifi.WifiManager;
 6 import android.os.Bundle;
 7 import android.view.View;
 8 import android.widget.Button;
 9 import android.widget.Toast;
10 
11 public class WifiActivity extends Activity {
12     private Button startButton = null;
13     private Button stopButton = null;
14     private Button checkButton = null;
15 
16     @Override
17     public void onCreate(Bundle savedInstanceState) {
18         super.onCreate(savedInstanceState);
19         setContentView(R.layout.main);
20         startButton = (Button) findViewById(R.id.startWifi);
21         stopButton = (Button) findViewById(R.id.stopWifi);
22         checkButton = (Button) findViewById(R.id.checkWifi);
23 
24         startButton.setOnClickListener(new StartListener());
25         stopButton.setOnClickListener(new StopListener());
26         checkButton.setOnClickListener(new CheckListener());
27     }
28 
29     private final class StartListener implements View.OnClickListener {
30 
31         @Override
32         public void onClick(View v) {
33             WifiManager wifiManager = (WifiManager) WifiActivity.this
34                     .getSystemService(Context.WIFI_SERVICE);
35             wifiManager.setWifiEnabled(true);
36             System.out
37                     .println("wifi state ----->" + wifiManager.getWifiState());
38             Toast.makeText(WifiActivity.this,
39                     "當前Wifi網卡狀態為" + wifiManager.getWifiState(), 1);
40 
41         }
42 
43     }
44 
45     private final class StopListener implements View.OnClickListener {
46 
47         @Override
48         public void onClick(View v) {
49             WifiManager wifiManager = (WifiManager) WifiActivity.this
50                     .getSystemService(Context.WIFI_SERVICE);
51             wifiManager.setWifiEnabled(false);
52             System.out
53                     .println("wifi state ----->" + wifiManager.getWifiState());
54             Toast.makeText(WifiActivity.this,
55                     "當前Wifi網卡狀態為" + wifiManager.getWifiState(), 1);
56 
57         }
58 
59     }
60 
61     private final class CheckListener implements View.OnClickListener {
62 
63         @Override
64         public void onClick(View v) {
65             WifiManager wifiManager = (WifiManager) WifiActivity.this
66                     .getSystemService(Context.WIFI_SERVICE);
67             System.out
68                     .println("wifi state ----->" + wifiManager.getWifiState());
69             Toast.makeText(WifiActivity.this,
70                     "當前Wifi網卡狀態為" + wifiManager.getWifiState(), 1);
71         }
72 
73     }
74 }