今天看了一下wifi的文档,写了一个简易的wifi的打开和搜索的功能。
那么,启用wifi是必须用真机调试的,权限也是必须的:
|
1
2
3
4
5
6
7
8
9
10 |
<!-- 配置Wifi訪問權限 --> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 配置改變Wifi狀態的權限 --> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/> |
然后呢布局文件里面就只有4个按钮:打开wifi,关闭wifi,wifi状态,wifi状态信息:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 |
<?xml version="1.0"
encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"
> <Button android:id="@+id/openWifi" android:layout_width="fill_parent" android:layout_height="wrap_content" android:onClick="onAction" android:text="打开Wifi"
/> <Button android:id="@+id/closedWifi" android:layout_width="fill_parent" android:layout_height="wrap_content" android:onClick="onAction" android:text="关闭Wifi"
/> <Button android:id="@+id/wifiState" android:layout_width="fill_parent" android:layout_height="wrap_content" android:onClick="onAction" android:text="Wifi状态"
/> <Button android:id="@+id/wifiStateInfo" android:layout_width="fill_parent" android:layout_height="wrap_content" android:onClick="onAction" android:text="Wifi状态信息"
/> </LinearLayout> |
代码里面的注释已经很详细了,我在这里就不过多的解释了,看代码你懂的:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99 |
package
cn.zuxia.android.app;import java.util.List;import android.app.Activity;import android.content.Context;import android.net.wifi.WifiConfiguration;import android.net.wifi.WifiInfo;import android.net.wifi.WifiManager;import
android.os.Bundle;import
android.view.View;import
android.widget.Toast;public
class TestWifiActivity extends
Activity { /** Called when the activity is first created. */ @Override public
void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // 获取wifiManager对象 mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); } // 定义操作Wifi的管理对象WifiManager private
WifiManager mWifiManager; public
void onAction(View v) { int
id = v.getId(); // wifi的状态值 int
state = mWifiManager.getWifiState(); switch
(id) { case
R.id.openWifi: // 如果wifi打开就关闭 if
(WifiManager.WIFI_STATE_DISABLED == state) { Toast.makeText(this, "正在打開Wifi.....", Toast.LENGTH_SHORT) .show(); mWifiManager.setWifiEnabled(true);// 將值設置為true表示打開wifi } else
{ Toast.makeText(this, "Wifi已經打開", Toast.LENGTH_SHORT).show(); } break; case
R.id.closedWifi: // 如果wifi关闭就打开 if
(WifiManager.WIFI_STATE_ENABLED == state) { Toast.makeText(this, "正在關閉Wifi.......", Toast.LENGTH_SHORT) .show(); mWifiManager.setWifiEnabled(false);// 將值設置為false表示關閉wifi } else
{ Toast.makeText(this, "Wifi已經關閉", Toast.LENGTH_SHORT).show(); } break; case
R.id.wifiState: Toast.makeText(this, "Wifi狀態為:"
+ state, Toast.LENGTH_SHORT).show(); break; case
R.id.wifiStateInfo: // 得到WifiInfo對象 // WifiInfo wifiInfo=mWifiManager.getConnectionInfo(); // // if(null!=wifiInfo){ // // System.out.println(wifiInfo.getBSSID()+",,"+wifiInfo.getMacAddress()+",,,"+wifiInfo.getIpAddress()); // }else{ // Toast.makeText(this, "返回的WifiInfo對象為空", // Toast.LENGTH_SHORT).show(); // } // 存储搜索到的wifi List<WifiConfiguration> configurations = mWifiManager .getConfiguredNetworks(); System.out.println(configurations.size()); for
(WifiConfiguration wifiConfiguration : configurations) { System.out.println(wifiConfiguration.wepKeys + "@@@" + wifiConfiguration.status); } break; } }} |
那么这个简单的wifi的打开和关闭的简单功能就已经实现了,希望有朋友们有帮助,有什么问题的话还请留言吧!!
原文:http://www.cnblogs.com/boyuanmeng/p/3555032.html