Android中有关WIFI的管理

这篇博客详细介绍了在Android中如何进行WIFI管理,包括使用管理类连接指定WIFI,设置回调接口以及处理弹框验证的过程。
摘要由CSDN通过智能技术生成

WIFI管理类

复制代码

class WifiConnector {
    private ExecutorService executors;
    Handler mHandler;
    WifiManager wifiManager;

    WifiConnector(WifiManager wifiManager, Handler handler) {
        this.wifiManager = wifiManager;
        executors= Executors.newSingleThreadExecutor();
        mHandler=handler;
    }

    private void sendMsg(String info) {
        if (mHandler != null) {
            Message msg = new Message();
            msg.obj = info;
            mHandler.sendMessage(msg);
        }
    }

    //WIFICIPHER_WEP是WEP ,WIFICIPHER_WPA是WPA,WIFICIPHER_NOPASS没有密码
    public enum WifiCipherType {
        WIFICIPHER_WEP, WIFICIPHER_WPA, WIFICIPHER_NOPASS, WIFICIPHER_INVALID
    }

    // 打开wifi
    public boolean openWifi() {
        return !wifiManager.isWifiEnabled() && wifiManager.setWifiEnabled(true);
    }
    // 关闭wifi
    public void closeWifi() {
         if (!wifiManager.isWifiEnabled()) {
            wifiManager.setWifiEnabled(false);

         }
    }
    //断开当前连接
    public boolean disconnectWifi() {
        return wifiManager.disconnect();
    }

    //扫描wifi信息
    public void scanWifi(){
            if(wifiManager.isWifiEnabled()){
                //扫描热点 如果扫描不到热点 把targetSdkVersion改成22
                wifiManager.startScan();
            }
    }

    //获取热点信息 ScanResult.SSID 获取热点名字 ScanResult.level 获取热点信号强度
    public List<ScanResult> scanResultsWifi(){
        if(wifiManager.isWifiEnabled()){
            //扫描热点 如果扫描不到热点 把targetSdkVersion改成22
            return wifiManager.getScanResults();
        }
        return null;
    }

    // 连接指定wifi
    public  void  connect(String ssid, String password, WifiCipherType type) {
        executors.execute(new Thread(new ConnectRunnable(ssid, password, type)));
    }

    // 查看以前是否也配置过这个网络
    public WifiConfiguration isExsits(String SSID) {
        List<WifiConfiguration> existingConfigs = wifiManager .getConfiguredNetworks();
        for (WifiConfiguration existingConfig : existingConfigs) {
            if (existingConfig.SSID.equals("\"" + SSID + "\"")) {
                return existingConfig;
            }
        }
        return null;
    }

    //配置wifi信息
    private WifiConfiguration createWifiInfo(String SSID, String Password,
                                            WifiCipherType Type) {
        WifiConfiguration config = new WifiConfiguration();
        config.allowedAuthAlgorithms.clear();
        config.all
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值