android学习之wifimanager
博客分类:
• android
Java代码
1. importjava.util.List;
2.
3. importandroid.content.Context;
4. importandroid.net.wifi.ScanResult;
5. importandroid.net.wifi.WifiConfiguration;
6. importandroid.net.wifi.WifiInfo;
7. importandroid.net.wifi.WifiManager;
8. importandroid.net.wifi.WifiManager.WifiLock;
9.
10. publicclass WifiAdmin
11. {
12. //定义WifiManager对象
13. private WifiManager mWifiManager;
14. //定义WifiInfo对象
15. private WifiInfo mWifiInfo;
16. //扫描出的网络连接列表
17. private List<ScanResult>mWifiList;
18. //网络连接列表
19. private List<WifiConfiguration>mWifiConfiguration;
20. //定义一个WifiLock
21. WifiLock mWifiLock;
22. //构造器
23. public WifiAdmin(Context context)
24. {
25. //取得WifiManager对象
26. mWifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
27. //取得WifiInfo对象
28. mWifiInfo =mWifiManager.getConnectionInfo();
29. }
30. //打开WIFI
31. public void OpenWifi()
32. {
33. if (!mWifiManager.isWifiEnabled())
34. {
35. mWifiManager.setWifiEnabled(true);
36.
37. }
38. }
39. //关闭WIFI
40. public void CloseWifi()
41. {
42. if (!mWifiManager.isWifiEnabled())
43. {
44. mWifiManager.setWifiEnabled(false);
45. }
46. }
47. //锁定WifiLock,当下载大文件时需要锁定
48. public void AcquireWifiLock()
49. {
50. mWifiLock.acquire();
51. }
52. //解锁WifiLock
53. public void ReleaseWifiLock()
54. {
55. //判断时候锁定
56. if (mWifiLock.isHeld())
57. {
58. mWifiLock.acquire();
59. }
60. }
61. //创建一个WifiLock
62. public void CreatWifiLock()
63. {
64. mWifiLock =mWifiManager.createWifiLock("Test");
65. }
66. //得到配置好的网络
67. public List<WifiConfiguration>GetConfiguration()
68. {
69. return mWifiConfiguration;
70. }
71. //指定配置好的网络进行连接
72. public void ConnectConfiguration(intindex)
73. {
74. //索引大于配置好的网络索引返回
75. if(index >mWifiConfiguration.size())
76. {
77. return;
78. }
79. //连接配置好的指定ID的网络
80. mWifiManager.enableNetwork(mWifiConfiguration.get(index).networkId,true);
81. }
82. public void StartScan()
83. {
84. mWifiManager.startScan();
85. //得到扫描结果
86. mWifiList =mWifiManager.getScanResults();
87. //得到配置好的网络连接
88. mWifiConfiguration =mWifiManager.getConfiguredNetworks();
89. }
90. //得到网络列表
91. public List<ScanResult>GetWifiList()
92. {
93. return mWifiList;
94. }
95. //查看扫描结果
96. public StringBuilder LookUpScan()
97. {
98. StringBuilder stringBuilder = newStringBuilder();
99. for (int i = 0; i <mWifiList.size(); i++)
100. {
101. stringBuilder.append("Index_"+new Integer(i + 1).toString() +":");
102. //将ScanResult信息转换成一个字符串包
103. //其中把包括:BSSID、SSID、capabilities、frequency、level
104. stringBuilder.append((mWifiList.get(i)).toString());
105. stringBuilder.append("\n");
106. }
107. return stringBuilder;
108. }
109. //得到MAC地址
110. public String GetMacAddress()
111. {
112. return (mWifiInfo == null) ?"NULL" : mWifiInfo.getMacAddress();
113. }
114. //得到接入点的BSSID
115. public String GetBSSID()
116. {
117. return (mWifiInfo == null) ?"NULL" : mWifiInfo.getBSSID();
118. }
119. //得到IP地址
120. public int GetIPAddress()
121. {
122. return (mWifiInfo == null) ? 0 :mWifiInfo.getIpAddress();
123. }
124. //得到连接的ID
125. public int GetNetworkId()
126. {
127. return (mWifiInfo == null) ? 0 :mWifiInfo.getNetworkId();
128. }
129. //得到WifiInfo的所有信息包
130. public String GetWifiInfo()
131. {
132. return (mWifiInfo == null) ?"NULL" : mWifiInfo.toString();
133. }
134. //添加一个网络并连接
135. public void AddNetwork(WifiConfigurationwcg)
136. {
137. int wcgID =mWifiManager.addNetwork(wcg);
138. mWifiManager.enableNetwork(wcgID,true);
139. }
140. //断开指定ID的网络
141. public void DisconnectWifi(int netId)
142. {
143. mWifiManager.disableNetwork(netId);
144. mWifiManager.disconnect();
145. }
146. }
添加权限:
Java代码
1. <uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
2. <uses-permissionandroid:name="android.permission.ACCESS_CHECKIN_PROPERTIES"></uses-permission>
3. <uses-permissionandroid:name="android.permission.WAKE_LOCK"></uses-permission>
4. <uses-permissionandroid:name="android.permission.INTERNET"></uses-permission>
5. <uses-permissionandroid:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
6. <uses-permissionandroid:name="android.permission.MODIFY_PHONE_STATE"></uses-permission>
Java代码
1. 判断wifi的安全网络类型调用
2. ScanResult.capabilities