当前位置: 代码迷 >> 综合 >> Mars Android视频学习笔记——01_23_WIFI网络操作
  详细解决方案

Mars Android视频学习笔记——01_23_WIFI网络操作

热度:50   发布时间:2024-01-12 11:07:02.0

转载时请注明转自:http://blog.csdn.net/sam_zhang1984

交流可加新浪微博:Android开发人

 

 

 

Wifi 的一些官方说明,历史由来就不多说了,这些需要进百度一下大把资料看!

这一集主内容有:

一、          WIFI 网卡有哪些状态?

二、          操作 WIFI 需要获取的权限!

三、          改变 WIFI 的状态!

 

一、          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 文件中进行声明!


注:所有与权限有关的定义都在 Manifest.permission 这个类里面,可以通过帮助文档进行相关查询。

-----------------------------分割线-----------------------------------

 

         一点半了,要睡一觉才行,下午还要上班,下了班准备去打一下篮球,都三四个月没打过球了,这次连面包牛奶都带好,下班吃饱就去打球,晚上接着写

    -----------------------------分割线-----------------------------------

三、          改变 WIFI 的状态

测试程序主要是有三个按钮,并为这三个按钮添加监听器,在监听器里面实现我们本节内容——改变 WIFI 的状态。

由于是第一篇笔记,这里写得详细一点,在这里说明按钮的添加和监听器添加,由于过于基础,可选择跳过这段不看。

按钮添加是在 main.xml 的布局文件中添加以下代码,其中 TextView 是系统自动生成的,可以去掉也可以留着用,下面的 Button 就是我们所添加的三个按钮,按钮的 ID 会自动在 R.java 中添加,按钮的标签即 Text 属于里可以直接写上自己喜欢的标签,也可以在资源文件 stings.xml 中添加,后者更为合理,更便于后续工作! stings.xml 如下所示,布局文件 main.xml 的其它会在其它笔记中专门详细讲到:

    

监听器的添加:

新增一个内部类,实现点击监听器接口 OnClickListener ,然后覆写其 public void onClick(View v) 方法即可,最后把按钮跟这个新增的监听器类绑定,即可捕捉按钮的点击事件。


WIFI 状态进行操作主要涉及到三个方面:

1.      得到 WifiManager 对象,这个对象是我们操作 WIFI 网卡的根本,无论是改变 WIFI 的状态,还是获取 WIFI 的状态,都要通过这个对象。

2.      改变 WIFI 网卡状态,涉及到一个 WifiManager 的方法 SetWifiEnabled ,通过这个方法的参数设置,可以实现打开或关闭 WIFI true 表示打开, false 表示关闭。

3.      获取 WIFI 网卡的状态,涉及到一个 WifiManager 的方法 getWifiState 通过这个方法,就可以取得 WIFI 的当前状态,即第一点中所讲的 WIFI 五个状态中的一个。

 

注:

1、 有些地方使用

m_wifiManager =(WifiManager)Context.getSystemService(Service. WIFI_SERVICE ) ; 来取得 WifiManager 对象,但从上面代码中我们可以看到,我们使用的是:

m_wifiManager =(WifiManager)firstWifi.this .getSystemService(Context. WIFI_SERVICE );

即通过我们自己的 Activity 来获取。这是因为 Activity Context 的一个子类,所以可以这样。里面之所以用到 firstWifi. this 关键字,而不是直接使用 this 关键字,是因为我们是在一个监听器里面实现,这个监听器是一个内部类,如果只用 this 则是指这个监听器本身,而我们要用到的是我们自己定义的 Activity ,故有此做法。

 

2、 至于 Service.WIFI_SERVICE ,由于 Service 也是 Context 的一个子类, Service WIFI_SERVICE 实际是从 Context 那里继承下来的,所以写成 Context.WIFI_SERVICE 也是没有问题的。

四、          实践程序界面

       

五、          总结

 

1.        要对 WIFI 进行操作,首先要获取 WIFI 操作权限, WIFI 操作权限主要有四个: CHANGE_NETWORK_STATE CHANGE_WIFI_STATE ACCESS_NETWORK_STATE ACCESS_WIFI_STATE

2.        然后得到 WifiManager 对象,就可以通过 WifiManager 对象进行 WIFI 网卡操作和网卡状态获取了。

 

  相关解决方案