android 开发 自动生成wifi,Android中的WiFi开发简明教程

Android提供了android.net.wifi包供我们操作WiFi。首先介绍一下几个类:WifiManager:提供了管理WiFI连接的大部分API

ScanResult:已经检测出的接入点(包括接入点的地址、名称、身份认证、频率、信号强度)

WifiConfiguration:WiFi连接的网络配置(包括安全配置等)

WifiInfo:WiFI无线连接的描述(包括接入点、网络连接状态、隐藏的接入点、IP地址、连接速度、MAC地址、网络ID、信号强度等等)

WifiManager.WifiLock:允许应用程序一直使用WiFI无线网络,通常情况下当用户在一段时间内没有任何操作的时候,WiFi网络会自动关闭。我们使用WifiLock来锁定WiFi网络,使其一直保持连接,直到这个锁被释放。多个应用程序可能有多个锁,当多有的应用程序的锁都被释放的时候,WiFi才被关闭。

下面我们通过代码理解WiFI的使用:通过以下代码获得WifiManager对象(Wifi是系统的一项服务)WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);

打开WiFipublic void openWifi() {

if (!mWifiManager.isWifiEnabled()) {

mWifiManager.setWifiEnabled(true);

}

}

关闭WiFipublic void closeWifi() {

if (!mWifiManager.isWifiEnabled()) {

mWifiManager.setWifiEnabled(false);

}

}

创建一个WifiLockpublic void creatWifiLock() {

mWifiLock = mWifiManager.createWifiLock("Test");

}

锁定WifiLockpublic void acquireWifiLock() {

mWifiLock.acquire();

}

释放WifiLockpublic void releaseWifiLock() {

if (mWifiLock.isHeld()) {

mWifiLock.release();

}

}

添加一个WiFi并连接public void addNetworkAndConn(WifiConfiguration wcg) {

int netId = mWifiManager.addNetwork(wcg);

mWifiManager.enableNetwork(netId, true);

}

断开一个指定ID的WiFipublic void disconnectWifi(int netId) {

mWifiManager.disableNetwork(netId);

mWifiManager.disconnect();

}

连接到一个已经配置好了的WiFipublic void connectConfiguration(int index) {

// 索引大于配置好的网络索引返回

if (index > mWifiConfiguration.size()) {

return;

}

mWifiManager.enableNetwork(mWifiConfiguration.get(index).networkId,

true);

}

扫描可接入的WiFipublic void startScan() {

mWifiManager.startScan();

// 得到扫描结果

List wifiList = mWifiManager.getScanResults();

// 得到配置好的网络连接

List wifiConfigList = mWifiManager.getConfiguredNetworks();

}

查看扫描结果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;

}

得到WiFi的一些信息WifiInfo mifiInfo = mWifiManager.getConnectionInfo();

// 得到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();

}

最后,使用WiFi必须添加的权限

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值