Android Wifi方法大全
2014-08-22 11:36
197 查看
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对象 privateWifiManager mWifiManager; //定义WifiInfo对象 privateWifiInfo mWifiInfo; //扫描出的网络连接列表 privateList<ScanResult> mWifiList; //网络连接列表 privateList<WifiConfiguration>mWifiConfiguration; //定义一个WifiLock WifiLock mWifiLock; //构造器 public WifiAdmin(Context context) { //取得WifiManager对象 mWifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE); //取得WifiInfo对象 mWifiInfo =mWifiManager.getConnectionInfo(); } //打开WIFI publicvoid OpenWifi() { if(!mWifiManager.isWifiEnabled()) { mWifiManager.setWifiEnabled(true); } } //关闭WIFI publicvoid CloseWifi() { if(!mWifiManager.isWifiEnabled()) { mWifiManager.setWifiEnabled(false); } } //锁定WifiLock publicvoid AcquireWifiLock() { mWifiLock.acquire(); } //解锁WifiLock publicvoid ReleaseWifiLock() { //判断时候锁定 if (mWifiLock.isHeld()) { mWifiLock.acquire(); } } //创建一个WifiLock publicvoid CreatWifiLock() { mWifiLock =mWifiManager.createWifiLock("Test"); } //得到配置好的网络 publicList<WifiConfiguration>GetConfiguration() { return mWifiConfiguration; } //指定配置好的网络进行连接 publicvoid ConnectConfiguration(int index) { //索引大于配置好的网络索引返回 if(index >mWifiConfiguration.size()) { return; } //连接配置好的指定ID的网络 mWifiManager.enableNetwork(mWifiConfiguration.get(index).networkId,true); } publicvoid StartScan() { mWifiManager.startScan(); //得到扫描结果 mWifiList =mWifiManager.getScanResults(); //得到配置好的网络连接 mWifiConfiguration =mWifiManager.getConfiguredNetworks(); } //得到网络列表 publicList<ScanResult> GetWifiList() { return mWifiList; } //查看扫描结果 publicStringBuilder 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地址 publicString GetMacAddress() { return (mWifiInfo == null) ?"NULL" : mWifiInfo.getMacAddress(); } //得到接入点的BSSID publicString GetBSSID() { return (mWifiInfo == null) ?"NULL" : mWifiInfo.getBSSID(); } //得到IP地址 publicint GetIPAddress() { return (mWifiInfo == null) ? 0: mWifiInfo.getIpAddress(); } //得到连接的ID publicint GetNetworkId() { return (mWifiInfo == null) ? 0: mWifiInfo.getNetworkId(); } //得到WifiInfo的所有信息包 publicString GetWifiInfo() { return (mWifiInfo == null) ?"NULL" : mWifiInfo.toString(); } //添加一个网络并连接 publicvoid AddNetwork(WifiConfiguration wcg) { int wcgID =mWifiManager.addNetwork(wcg); mWifiManager.enableNetwork(wcgID, true); } //断开指定ID的网络 publicvoid DisconnectWifi(int netId) { mWifiManager.disableNetwork(netId); mWifiManager.disconnect(); } }
注:
在android中,申请WakeLock可以使进程持续执行,即使进入睡眠模式,进程的执行也不间断,而且能保持屏幕常量。
WifiLock跟WakeLock用法作用与WakeLock相同,不过前者是针对Wifi的而已。
SMS Backup中关于WakeLock以及WifiLock的代码如下:
private static void acquireWakeLock(Context ctx) { if (sWakeLock == null) { PowerManager pMgr = (PowerManager) ctx.getSystemService(POWER_SERVICE); //保持当前进程持续有效 sWakeLock = pMgr.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "SmsSyncService.sync()wakelock."); WifiManager wMgr = (WifiManager) ctx.getSystemService(WIFI_SERVICE); //保持wifi有效 sWifiLock = wMgr.createWifiLock("SMSBackup"); } sWakeLock.acquire(); sWifiLock.acquire(); }
用完一定要记得释放锁:
private static void releaseWakeLock(Context ctx) { sWakeLock.release(); sWifiLock.release(); }
而且要注意在AndroidManifest.xml中注明wakelock权限的申请:
<uses -permission android:name="android.permission.WAKE_LOCK"/>
相关文章推荐
- Android Wifi方法大全
- Android Wifi方法大全
- Android Wifi方法大全
- Android Wifi方法大全
- Android Wifi方法大全
- Android Wifi方法大全
- Android Wifi方法大全
- Android Wifi方法大全
- Android Wifi方法大全
- Android Wifi方法大全
- Android Wifi方法大全
- Android Wifi方法大全
- Android Wifi方法大全
- Android Wifi方法大全
- Android Wifi方法大全
- Android Wifi方法大全
- Android Wifi方法大全
- android 反编译 方法大全(classex.dex转java,odex转classex.dex,system.img解压等等)
- Android使用wifi通过UDP协议发送广播数据包给PC接收不到问题解决方法
- Android 图片处理方法大全