文档库 最新最全的文档下载
当前位置:文档库 › Android网络开发之WIFI

Android网络开发之WIFI

Android网络开发之WIFI
Android网络开发之WIFI

Android网络开发之WIFI

WIFI全称Wireless Fidelity, 又称802.11b标准。WIFI联盟成立于1999年,当时的名称叫做Wireless Ethernet Compatibility Alliance(WECA), 2002年10月正式改名Wi-Fi Alliance。

Android 提供https://www.wendangku.net/doc/df749865.html,.wifi包。wifiapi为app和底层无线栈进行交流提供途径。底层无线栈为wifi提供接入点。

https://www.wendangku.net/doc/df749865.html,.wifi中常用的类有:

1. ScanResult, 主要用来描述已经检测出的接入点,包括接入点的地址、接入点的名称、身份认证、频率、信号强度等。

2. WifiConfiguration, wifi网络配置,包括安全配置等。

3. WifiInfo, Wifi无线连接的描述,包括接入点、网络连接状态、隐藏的接入点、IP地址、连接速度、MAC地址、网络ID、信号强度等。

4. WifiManager, 提供管理wifi连接的大部分API。

5. WifiManager.WifiLock, 通过WifiLock来锁定wifi网络,使其一直保持连接,直到这个锁定被释放。如果app需要下载很大的文件,就需要保持wifi锁,来确保app有足够的时间下载完成。wifi锁不能超越wifi-enabled设置,也没有飞行模式。

WifiManager的常用方法

1. addNetwork

2. calculateSignalLevel,

3. compareSignalLevel,

4. createWifiLock,

5. disableNetwork,

6. disconnect,

7. enableNetwork,

8. getConfiguredNetworks,

9. getDhcpInfo,

10. getScanResults,

11. getWifiState,

12. isWifiEnabled,

13. pingSupplicant,

14. reassociate,

15. removeNetwork,

16. saveConfiguration,

17. setWifiEnabled,

18. startScan,

19. updateNetwork.

学习如何控制app中的wifi连接。

// 获得WifiManager对象

WifiManagerwifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);

public class WifiAdmin { privateWifiManagermWifiManager; privateWifiInfomWifiInfo;

private ListmWifiList;

private ListmWifiConfigurations; privateWifiLockmWifiLock;

publicWifiAdmin(Context context) {

mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);

mWifiInfo = mWifiManager.getConnectionInfo();

}

// 打开wifi

if(!mWifiManager.isWifiEnabled()){

mWifiManager.setWifiEnabled(true);

}

// 关闭wifi

if(mWifiManager.isWifiEnabled()){

mWifiManager.setWifiEnabled(false);

}

// 锁定wifilock

if(!mWifiLock.isHeld()) {

mWifiLock.acquire();

}

// 解锁wifiLock

if(mWifiLock.isHeld()) {

mWifiLock.unAcquire();

}

// 创建一个wifiLock

mWifiLock = mWifiManager.createWifiLock(“xxx”);

// 扫描wifi网络

mWifiManager.startScan();

mWifiList = mWifiManager.getScanResults();

// 得到wifi连接

mWifiConfiguration = mWifiManager.getConfiguredNetworks(); // 得到MAC地址

mWifiInfo.getMacAddress();

// 得到接入点的BSSID

mWifiInfo.getBSSID();

// 得到IP地址

mWifiInfo.getIpAddress();

// 得到连接的ID

mWifiInfo.getNetworkId();

// 得到WifiInfo所有信息

mWifiInfo.toString();

// 添加一个网络并连接

intwifiConfigId = mWifiManager.addNetwork(wifiConfig);

mWifiManager.enableNetwork(wifiConfigId, true);

// 断开指定网络

mWifiManager.disableNetwork(wifiConfigId);

mWifiManager.disconnect();

}

在AndroidManifest.xml文件中授权

相关文档