Android WIFI 联接不加密热点总是失败 addNetwork总是返回-1

问题:连接加密的热点 就可以连接,连接不加密的热点不能连接。addNetwork这个操作总是返回-1 

代码如下:这是connect

public static boolean Connect(String SSID, String Password, int Type) {
        WifiConfiguration wifiConfig = createWifiInfo(SSID, Password, Type);
        if (wifiConfig == null) {
        Log.v(TAG,"wifiConfig == null");
            return false;
        }
        int netID = settingWifiAdmin.wifiManager.addNetwork(wifiConfig);
        Log.v(TAG,"netID = "+netID);//连不加密AP总是返回-1
        boolean bRet = settingWifiAdmin.wifiManager.enableNetwork(netID, true);
        return bRet;
    }
/***
     * 配置要连接的WIFI热点信息
     * @param SSID
     * @param password
     * @param type  加密类型
     * @return
     */
    public static WifiConfiguration createWifiInfo(String SSID, String password, int type) {  

        Log.e(TAG, "SSID = " + SSID + "## Password = " + password + "## Type = " + type);  

        WifiConfiguration config = new WifiConfiguration();
        config.allowedAuthAlgorithms.clear();
        config.allowedGroupCiphers.clear();
        config.allowedKeyManagement.clear();
        config.allowedPairwiseCiphers.clear();
        config.allowedProtocols.clear();
        config.SSID = """ + SSID + """;  

        //增加热点时候 如果已经存在SSID 则将SSID先删除以防止重复SSID出现
        WifiConfiguration tempConfig = wifiAdmin.IsExsits(SSID);
        if (tempConfig != null) {
        settingWifiAdmin.wifiManager.removeNetwork(tempConfig.networkId);
        }  

        // 分为三种情况:没有密码   用wep加密  用wpa加密
        if (type == SECURITY_NONE) {   // WIFICIPHER_NOPASS
            config.wepKeys[0] = "";
            config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
            config.wepTxKeyIndex = 0;   

        } else if (type == SECURITY_WEP) {  //  WIFICIPHER_WEP
            config.hiddenSSID = true;
            config.wepKeys[0] = """ + password + """;
            config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.SHARED);
            config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
            config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
            config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);
            config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104);
            config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
            config.wepTxKeyIndex = 0;  

        } else if (type == SECURITY_PSK) {   // WIFICIPHER_WPA
            config.preSharedKey = """ + password + """;
            config.hiddenSSID = true;
            config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
            config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
            config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
            config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
            config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
            config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
            config.status = WifiConfiguration.Status.ENABLED;
        }
        return config;
    }

解决办法:

  if(Type == WifiCipherType.WIFICIPHER_NOPASS)      {      config.hiddenSSID = true;  //        config.wepKeys[0] = "";        config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);//        config.wepTxKeyIndex = 0;      }

把与wep有关的都注释掉就行了

时间: 2025-01-29 13:12:56

Android WIFI 联接不加密热点总是失败 addNetwork总是返回-1的相关文章

Android实现短信加密功能(发送加密短信、解密本地短信)_Android

短信加密此类功能由于新手学习的需求量较小,所以在网上很少有一些简单的demo供新手参考.小编做到此处也是花了比较多的时间自我构思,具体的过程也是不过多描述了,讲一下demo的内容.       demo功能: 1.可以发送短信并且加密(通过改变string中的char) 2.能够查看手机中的短信 3.能够给收到的加密短信解密. 涉及到的知识点: 1.intent bundle传递 2.ContentResolver获取手机短信 3.listveiw与simpleAdapter 4.发送短信以及为

Android Wifi的管理和操作

因为需要一直在弄网络的问题,今天看了一下Wifi的操作,经过整理,做出来了一个类,可能不全,但是个人感觉已经完全能够满足需要了,当然,里面的方法也有可能是错误的或者是不全的,这个类我没有进行完整的测试,只测试了其中的一些方法. 其实操作Wifi也是很简单的,主要使用以下几个对象或变量: private WifiManager wifiManager;// 声明管理对象OpenWifi private WifiInfo wifiInfo;// Wifi信息 private List<ScanRes

WIFI共享精灵设置热点图文教程

  一. 免费上网 电脑下载WIFI共享精灵,开启免费WIFI,智能设备连接共享热点,无需流量即可免费上网! 二. 手机观看电脑硬盘大片 扫描软件界面上的二维码下载WIFI上网精灵,启动影盘,选择有资源的电影文件夹,手机打开WIFI上网精灵连接开启成功的免费WIFI热点,手机即可观看电脑硬盘大片. 三. 设备连接管理 当智能设备连接热点后,可以对接入的设备进行"修改备注"."限速管理"."拉入黑名单"等设置 四. 会员中心 登陆WIFI共享精灵电

小度wifi驱动无法安装、安装失败的解决方法

小度wifi驱动无法安装.安装失败的解决方法   驱动安装 大家请仔细查看上图这个弹窗,可以发现发布者是Mydrivers Information Technology Co., Ltd (ZhengZhou),是驱动精灵的签名,可能是百度的工程师没有把驱动打好,请查看设备管理器. 设备管理器 在这里发现802.11 n WLAN这个设备属于无驱动状态,根据刚才的弹窗找到了win7 64bit下正确的驱动路径. 手动打驱动 手动打驱动. 手动打驱动 出现如下图界面,点击下一步; 手动打驱动 之后

wifi共享开发-开发一个类似于猎豹免费wifi一样的windows热点共享软件

问题描述 开发一个类似于猎豹免费wifi一样的windows热点共享软件 具体windows开启热点的方法,我知道有命令可以直接实现,但是不能实现获得连接到wifi热点设备信息或者名称的功能,我想知道开发这种软件需要哪种协议或者通过什么方法获得连接到热点上的设备的信息. 解决方案 你好,你的这个问题解决了吗 解决方案二: EnableSharingget_INetSharingConfigurationForINetConnection你查查相关的api吧,用这个实现,但是不能获得相关的硬件信息

Android数据加密之Des加密_Android

前言:  有个同事咨询我有关Android DES加密的相关实现,简单的实现了一下,今天来总结一下.  其他几种加密方式:  •Android数据加密之Rsa加密  •Android数据加密之Aes加密  •Android数据加密之Des加密  •Android数据加密之MD5加密  •Android数据加密之Base64编码算法  •Android数据加密之SHA安全散列算法  DES加密介绍:       DES是一种对称加密算法,所谓对称加密算法即:加密和解密使用相同密钥的算法.DES加密

Android数据加密之Aes加密_Android

前言: 项目中除了登陆,支付等接口采用rsa非对称加密,之外的采用aes对称加密,今天我们来认识一下aes加密.  其他几种加密方式:  •Android数据加密之Rsa加密  •Android数据加密之Aes加密  •Android数据加密之Des加密  •Android数据加密之MD5加密  •Android数据加密之Base64编码算法  •Android数据加密之SHA安全散列算法  什么是aes加密?       高级加密标准(英语:Advanced Encryption Standa

关于android wifi传输文件的问题

问题描述 关于android wifi传输文件的问题 我想问一下这个是怎么实现的,就是安卓客户端打开wifi传输功能,给出一个地址,然后用户在浏览器 输入这个地址,然后通过网页上传文件然后到安卓端 解决方案 做了个毕设, 是在Wifi环境下,Android手机和PC的文件共享,也就是在PC通过WIFI读写手机中的文件.然后,毕设过后,本来想发出来给大家使用. 发布到应用宝,但是需要提供国家著作权的证明. 发布到小米应用市场,嫌APP功能太少.所以都没有发布成功.所以只能贴出来这里给大家参考了.

android wifi 如何在路由器关上的时候马上检测到wifi连接状态变化

问题描述 android wifi 如何在路由器关上的时候马上检测到wifi连接状态变化 在应用中监听了WifiManager.NETWORK_STATE_CHANGED_ACTION这个广播,希望在wifi状态变化的时候重启应用.可是每次路由器关上后,应用都需要等七八秒才检测到wifi断开.怎么才能在路由器一关上就检测到手机wifi连接状态变化呢?