Android Wifi使用方法大全

來源:互聯網
上載者:User

在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操作大家都可以參考了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.