在android应用程序中可以很方便的使用wifi来处理不同的应用需求,灵活而方面的方法提供给开发者,这里定义了一些常用的wifi处理函数,参考android应用开发解密第八章内容

public class WifiAdmin {private String tag = "WifiAdmin";private WifiManager wifiManager;private WifiInfo wifiInfo;private List<ScanResult> wifiList;private List<WifiConfiguration> wifiConfiguration;WifiLock wifiLock;public WifiAdmin(Context context) {wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);wifiInfo = wifiManager.getConnectionInfo();}//连接wifi ssidpublic void connected(){for(WifiConfiguration config:getConfiguration()){String ssid = config.SSID.replace("\"", "");if(config.status!=1){Log.i(tag, "ssid--------->"+ssid);if(ssid.startsWith("OPLK")){this.connectConfiguration(config.networkId);while (getWifiState() == WifiManager.WIFI_STATE_ENABLING) {try {Thread.currentThread();Thread.sleep(100);} catch (InterruptedException ie) {}}break;}}}}public int getWifiState(){return wifiManager.getWifiState();}//打开wifipublic void openWifi() {if (!wifiManager.isWifiEnabled()) {wifiManager.setWifiEnabled(true);}}//关闭wifipublic void closeWifi() {if (!wifiManager.isWifiEnabled()) {wifiManager.setWifiEnabled(false);}}//允许一直使用wifipublic void acquireWifiLock() {wifiLock.acquire();}//释放wifipublic void releaseWifiLock() {if (wifiLock.isHeld()) {wifiLock.acquire();}}public void creatWifiLock() {wifiLock = wifiManager.createWifiLock("Test");}public List<WifiConfiguration> getConfiguration() {return wifiConfiguration;}public void connectConfiguration(int networkId) {boolean isConn = wifiManager.enableNetwork(networkId, true);Log.i(tag, "isConn----->"+isConn);}public void startScan() {wifiManager.startScan();wifiList = wifiManager.getScanResults();wifiConfiguration = wifiManager.getConfiguredNetworks();Log.i(tag, "start scan wifi list size------>"+wifiList.size());}public List<ScanResult> getWifiList() {return wifiList;}public void LookUpScan() {for (ScanResult result:wifiList) {Log.i(tag, "wifi ssid---->"+result.SSID);}}public String GetMacAddress() {return (wifiInfo == null) ? "NULL" : wifiInfo.getMacAddress();}public String GetBSSID() {return (wifiInfo == null) ? "NULL" : wifiInfo.getBSSID();}public int GetIPAddress() {return (wifiInfo == null) ? 0 : wifiInfo.getIpAddress();}public int GetNetworkId() {return (wifiInfo == null) ? 0 : wifiInfo.getNetworkId();}public String GetWifiInfo() {return (wifiInfo == null) ? "NULL" : wifiInfo.toString();}public void AddNetwork(WifiConfiguration wcg) {int wcgID = wifiManager.addNetwork(wcg);wifiManager.enableNetwork(wcgID, true);}public void DisconnectWifi(int netId) {wifiManager.disableNetwork(netId);wifiManager.disconnect();}}

更多相关文章

  1. Android(安卓)Studio开发(二)使用RecyclerView实现瀑布流展示
  2. Android开发实践 带你理解使用WebView
  3. Android核心分析(20)----Android应用程序框架之无边界设计意图
  4. Android: INSTALL_FAILED_UPDATE_INCOMPATIBLE
  5. Android实现微信分享及注意事项
  6. android中的dispatchTouchEvent、onInterceptTouchEvent和onTouc
  7. 箭头函数的基础使用
  8. NPM 和webpack 的基础使用
  9. Python list sort方法的具体使用

随机推荐

  1. Android(安卓)应用程序的组成部分
  2. postInvalidate(),invalidate(),requestLay
  3. 下拉选择菜单Spinner的使用
  4. Android中改变Activity的不同icon:activit
  5. Delphi XE5 for Android (十一)
  6. Android重写onConfigurationChanged规避
  7. JavaScript或PHP检测Android设备
  8. Android主线程与子线程的关系
  9. BroadcastReceiver 该思考的问题(沉思篇)
  10. android TextView常用属性