wifi知识点
来源:互联网 发布:mac pro关闭程序 编辑:程序博客网 时间:2024/04/29 08:36
转自 http://blog.sina.com.cn/s/blog_7ffb8dd501012z2j.html
一、WIFI 网卡有哪些状态?WIFI 总共有以下五个状态,实际就是一些整形常量:1. WIFI_STATE_DISABLED : WIFI 不能使用,其值是: 1 。2. WIFI_STATE_DISABLING : WIFI 正在关闭中,由于 WIFI 关闭是需要这一个过程,这个状态就表示 WIFI 正在关闭的过程中,其值是: 0 。3. WIFI_STATE_ENABLED : WIFI 可以使用,其值是: 3 。4. WIFI_STATE_ENABLING : WIFI 正在开启中,其道理同 WIFI_STATE_DISABLING ,其值是: 2 。5. WIFI_STATE_UNKNOWN :未知网卡状态,当手机或程序出现了一些错误引起 WIFI 不可用时会是这个状态,其值是: 4 。二、操作 WIFI 需要获取的权限要获取操作 WIFI 的权限,就必须知道 WIFI 到底有哪些权限, WIFI 的主要操作权限有四个:CHANGE_NETWORK_STATE :允许修改网络状态的权限。CHANGE_WIFI_STATE :允许修改 WIFI 状态的权限。ACCESS_NETWORK_STATE :允许访问网络状态的权限。ACCESS_WIFI_STATE :允许访问 WIFI 状态的权限。 声明操作 WIFI 权限是在 AndroidManifest.xml 文件中进行声明!加入: <!--得到WIFI访问网络所需要的权限 --> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"></uses-permission> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission> 三、改变 WIFI 的状态对 WIFI 状态进行操作主要涉及到三个方面:1.通过m_wifiManager=(WifiManager)this.getSystemService(Context.WIFI_SERVICE); 得到 WifiManager 对象,这个对象是我们操作 WIFI 网卡的根本,无论是改变 WIFI 的状态,还是获取 WIFI 的状态,都要通过这个对象。2. 改变 WIFI 网卡状态,涉及到一个 WifiManager 的方法 SetWifiEnabled ,通过这个方法的参数设置,可以实现打开或关闭 WIFI : true 表示打开, false 表示关闭。3.获取 WIFI 网卡的状态,涉及到一个 WifiManager 的方法 getWifiState , 通过这个方法,就可以取得 WIFI 的当前状态,即第一点中所讲的 WIFI 五个状态中的一个。 注:1、 有些地方使用m_wifiManager =(WifiManager)this.getSystemService(Service. WIFI_SERVICE ) ;或者(WifiManager)this.getSystemService(this. WIFI_SERVICE ) 来取得 WifiManager 对象,由于 Service 和Activity都是是 Context 的一个子类, Service和Activity 的 WIFI_SERVICE 实际是从 Context 那里继承下来的,所以写成 Context.WIFI_SERVICE 也是没有问题的。 附:也可以通过下面的方法来获取wifi状态// 获取wifi是否打开 public boolean isWifiActive(){ // 获取连接管理器 ConnectivityManager connMng = (ConnectivityManager) this.getSystemService(Context.CONNECTIVITY_SERVICE); if (connMng != null){ NetworkInfo[] netInfor = connMng.getAllNetworkInfo(); for (NetworkInfo i : netInfor){ if (ConnectivityManager.TYPE_WIFI == i.getType()&& i.isConnected()){ return true; // wifi已经打开 } } } return false; }
0 0
- wifi知识点
- Wifi知识点
- Wifi知识点
- Wifi知识点累积
- [RK3288][Android6.0] WiFi之cfg80211知识点小结
- [RK3288][Android6.0] WiFi之mac80211知识点小结
- wifi
- WIFI
- WIFI
- WiFi
- WIFI
- WIFI
- WiFI
- WIFI
- WIFI
- wifi
- WIFI
- WIFI
- phpstorm 代码换行符 设置成unix分隔
- jzoj P1541 【USACO Open 2012银】书架Bookshelf
- PL/SQL developer基础语法学习(一)之变量
- Imap协议实现接收邮件
- Android Studio Run程序时自动执行自定义task
- wifi知识点
- 四边形不等式优化
- 一股气
- MS41909 用于多倍光学变焦镜头及各种小型电子产品的高精度旋转控制
- 素数环 (深搜)
- 文章标题
- jQuery实现页面跳转
- 【C++与C差异】字符串
- Android UI 菜鸟级别的我