1.什么是WIFI
Wi-Fi 原先是無線保真的縮寫,Wi-Fi 的英文全稱為wireless fidelity,讀音為waifai(拼音讀法,均為一聲),英文音標/?wa?fa?/, wireless [英][?wa??l?s] fidelity[英] [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:允許訪問網絡狀態的權限。
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>
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>
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>
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 }
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 }