在Android裡,所有的wifi操作都在android.net.wifi包裡,而常用的類也就只用幾個,對於一般的開發人員來說,常用的操作也是有限的,不需要刻意的去記,用的時候現查就ok了,下面是《Android應用開發揭秘》裡面關於wifi的範例,個人感覺還挺齊全,跟大家分享一下!
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
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();
}
} |
有了這些方法,我想一般的wifi操作大家都可以參考了。