您的位置:首页 > 移动开发 > Android开发

Android Wifi方法大全

2012-11-05 08:35 190 查看
首先需要强调一点的是wifi只能在真机上测试!

     在Android里,所有的wifi操作都在android.net.wifi包里,而常用的类也就只用几个,对于一般的开发人员来说,常用的操作也是有限的,不需要刻意的去记,用的时候现查就ok了,下面是《Android应用开发揭秘》里面关于wifi的范例,个人感觉还挺齐全,跟大家分享一下!
复制内容到剪贴板
代码:
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();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: