在Android里,所有的wifi操作都在android.net.wifi包里,而常用的类也就只用几个,对于一般的开发人员来说,常用的操作也是有限的,不需要刻意的去记,用的时候现查就ok了,下面是《Android应用开发揭秘》里面关于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
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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
|
package
com.yarin.android.Examples_08_08;
import
java.util.List;
import
android.content.Context;
import
android.net.wifi.ScanResult;
import
android.net.wifi.WifiConfiguration;
import
android.net.wifi.WifiInfo;
import
android.net.wifi.WifiManager;
import
android.net.wifi.WifiManager.WifiLock;
public
class WifiAdmin
{
//定义WifiManager对象
private
WifiManager mWifiManager;
//定义WifiInfo对象
private
WifiInfo mWifiInfo;
//扫描出的网络连接列表
private
List<ScanResult> mWifiList;
//网络连接列表
private
List<WifiConfiguration> mWifiConfiguration;
//定义一个WifiLock
WifiLock mWifiLock;
//构造器
public
WifiAdmin(Context context)
{
//取得WifiManager对象
mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
//取得WifiInfo对象
mWifiInfo = mWifiManager.getConnectionInfo();
}
//打开WIFI
public
void OpenWifi()
{
if
(!mWifiManager.isWifiEnabled())
{
mWifiManager.setWifiEnabled( true );
}
}
//关闭WIFI
public
void CloseWifi()
{
if
(!mWifiManager.isWifiEnabled())
{
mWifiManager.setWifiEnabled( false );
}
}
//锁定WifiLock
public
void AcquireWifiLock()
{
mWifiLock.acquire();
}
//解锁WifiLock
public
void ReleaseWifiLock()
{
//判断时候锁定
if
(mWifiLock.isHeld())
{
mWifiLock.acquire();
}
}
//创建一个WifiLock
public
void CreatWifiLock()
{
mWifiLock = mWifiManager.createWifiLock( "Test" );
}
//得到配置好的网络
public
List<WifiConfiguration> GetConfiguration()
{
return
mWifiConfiguration;
}
//指定配置好的网络进行连接
public
void ConnectConfiguration( int
index)
{
//索引大于配置好的网络索引返回
if (index > mWifiConfiguration.size())
{
return ;
}
//连接配置好的指定ID的网络
mWifiManager.enableNetwork(mWifiConfiguration.get(index).networkId,
true );
}
public
void StartScan()
{
mWifiManager.startScan();
//得到扫描结果
mWifiList = mWifiManager.getScanResults();
//得到配置好的网络连接
mWifiConfiguration = mWifiManager.getConfiguredNetworks();
}
//得到网络列表
public
List<ScanResult> GetWifiList()
{
return
mWifiList;
}
//查看扫描结果
public
StringBuilder LookUpScan()
{
StringBuilder stringBuilder =
new StringBuilder();
for
( int
i = 0 ; i < mWifiList.size(); i++)
{
stringBuilder.append( "Index_" + new
Integer(i + 1 ).toString() +
":" );
//将ScanResult信息转换成一个字符串包
//其中把包括:BSSID、SSID、capabilities、frequency、level
stringBuilder.append((mWifiList.get(i)).toString());
stringBuilder.append( "/n" );
}
return
stringBuilder;
}
//得到MAC地址
public
String GetMacAddress()
{
return
(mWifiInfo == null ) ?
"NULL" : mWifiInfo.getMacAddress();
}
//得到接入点的BSSID
public
String GetBSSID()
{
return
(mWifiInfo == null ) ?
"NULL" : mWifiInfo.getBSSID();
}
//得到IP地址
public
int GetIPAddress()
{
return
(mWifiInfo == null ) ?
0 : mWifiInfo.getIpAddress();
}
//得到连接的ID
public
int GetNetworkId()
{
return
(mWifiInfo == null ) ?
0 : mWifiInfo.getNetworkId();
}
//得到WifiInfo的所有信息包
public
String GetWifiInfo()
{
return
(mWifiInfo == null ) ?
"NULL" : mWifiInfo.toString();
}
//添加一个网络并连接
public
void AddNetwork(WifiConfiguration wcg)
{
int
wcgID = mWifiManager.addNetwork(wcg);
mWifiManager.enableNetwork(wcgID,
true );
}
//断开指定ID的网络
public
void DisconnectWifi( int
netId)
{
mWifiManager.disableNetwork(netId);
mWifiManager.disconnect();
}
} |