Android Wifi方法大全
来源:互联网 发布:为什么淘宝店铺打不开 编辑:程序博客网 时间:2024/06/05 05:10
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"/>
0 0
- 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 Wifi控制方法总结
- [总结]Integer.getInteger和Integer.valueOf的区别
- AFNetwork详解
- Leaflet使用easybutton插件,如何自定义图标
- 通过IMSI运营商判断[Android]
- TelephonyManager类的方法详解[Android]
- Android Wifi方法大全
- Android下一个apk安装多个程序入口…
- AIDL-Android中的远程接口
- ntstatus 状态值查看
- CSDN开源夏令营 百度数据可视化实践 ECharts(8)问题分析
- Local Service and Remote Service[Android]
- Strategy pattern
- Message Queue的角色[Android]
- 杭电acm1037