wifi權限
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
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
|
public class WifiUtil { //定義一個WifiManager對象 private WifiManager mWifiManager; //定義一個WifiInfo對象 private WifiInfo mWifiInfo; //掃描出的網絡連接列表 private List<ScanResult> mWifiList; //網絡連接列表 private List<WifiConfiguration> mWifiConfigurations; 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 ); } } // 檢查當前wifi狀態 public int checkState() { return mWifiManager.getWifiState(); } //鎖定wifiLock public void acquireWifiLock(){ mWifiLock.acquire(); } //解鎖wifiLock public void releaseWifiLock(){ //判斷是否鎖定 if (mWifiLock.isHeld()){ mWifiLock.acquire(); } } //創建一個wifiLock public void createWifiLock(){ mWifiLock=mWifiManager.createWifiLock( "test" ); } //得到配置好的網絡 public List<WifiConfiguration> getConfiguration(){ return mWifiConfigurations; } //指定配置好的網絡進行連接 public void connetionConfiguration( int index){ if (index>mWifiConfigurations.size()){ return ; } //連接配置好指定ID的網絡 mWifiManager.enableNetwork(mWifiConfigurations.get(index).networkId, true ); } public void startScan(){ mWifiManager.startScan(); //得到掃描結果 mWifiList=mWifiManager.getScanResults(); //得到配置好的網絡連接 mWifiConfigurations=mWifiManager.getConfiguredNetworks(); } //得到網絡列表 public List<ScanResult> getWifiList(){ return mWifiList; } //查看掃描結果 public StringBuffer lookUpScan(){ StringBuffer sb= new StringBuffer(); for ( int i= 0 ;i<mWifiList.size();i++){ sb.append( "Index_" + new Integer(i + 1 ).toString() + ":" ); // 將ScanResult信息轉換成一個字符串包 // 其中把包括:BSSID、SSID、capabilities、frequency、level sb.append((mWifiList.get(i)).toString()).append( "\n" ); } return sb; } public String getMacAddress(){ return (mWifiInfo== null )? "NULL" :mWifiInfo.getMacAddress(); } public String getBSSID(){ return (mWifiInfo== null )? "NULL" :mWifiInfo.getBSSID(); } public int getIpAddress(){ return (mWifiInfo== null )? 0 :mWifiInfo.getIpAddress(); } //得到連接的ID public int getNetWordId(){ return (mWifiInfo== null )? 0 :mWifiInfo.getNetworkId(); } //得到wifiInfo的所有信息 public String getWifiInfo(){ return (mWifiInfo== null )? "NULL" :mWifiInfo.toString(); } //添加一個網絡並連接 public void addNetWork(WifiConfiguration configuration){ int wcgId=mWifiManager.addNetwork(configuration); mWifiManager.enableNetwork(wcgId, true ); } //斷開指定ID的網絡 public void disConnectionWifi( int netId){ mWifiManager.disableNetwork(netId); mWifiManager.disconnect(); } } |