android怎样连接指定wifi,手机连接指定WiFi的实现

最近在项目上有个需求,要实现检测当前的wifi是否为我们想要连接的wifi,如果不是,则通过程序控制断掉当前的wifi,连接上我们所需要的wifi。在网上查阅了很多的资料,有很多大神也分享了实现的方法,借鉴大神们的经验将我自己的理解分享出来。

在没有看懂手机wifi设置的原理以前,以为手机上打开Wifi开关并且连接到指定的wifi,以为是系统定制的,我们是不能去模仿且改变的,查资料后才知道,手机上的wifi开关且设置网络都是调用了API去实现的,既然API的开源的,那我们也可以去调用API实现我们想要的结果。

当我们检测WiFi状态对应结果如下:

WIFI_STATE_DISABLED     0       正在关闭

WIFI_STATE_DISABLED     1        已经关闭

WIFI_STATE_ENABLING     2       正在打开

WIFI_STATE_ENABLED     3        已经打开

WIFI_STATE_UNKNOWN     4         未知

以下的这个WifiManagerUtils是我参考大神们的讲解封装的一个类。以下只是部分代码,完整的请查看分享链接链接: 链接: https://pan.baidu.com/s/1boPrbfL 密码: wagu

b37626723c2b

下面是我使用WifiManageUtils连接一个特定的wifi案列

b37626723c2b

实现的思路是:

(1)先获取当前wifi状态,如果关闭,则调用openWifiEnabled()打开wifi。

(2)当wifi状态为3(WIFI_STATE_ENABLED)时,通过getNetWorkId()返回值判断当前是否有wifi连接,如果判断是否为我们要设置的目标WIFI,如果不是则通过disconnectWifi断掉当前连接的WiFi;如果getNetWorkId()返回值返回值为null,则表示当前没有WiFi连接,则通过getScanResult()获取周围所有的wifi,并且查找是否有我们所要连接的目标Wifi。

(3)找到目标WiFi后,通过addNetWork(managerUtils.createWifiInfo(ssid,psw,3))设置目标wifi。

想要设置wifi只需要在调用的地方通过setSpecificWifi(WifiManagerUtils  wifiManagerUtils, String  ssid,String    psw)设置即可。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值