Android 7 Nougat系统WiFi热点创建后客户端无法获取IP地址问题
Android 7.1 代码创建WiFi热点无法接入问题解决方案
问题根因
该问题属于Android 7.0/7.1版本的原生系统缺陷,通过反射调用setWifiApEnabled接口开启热点后,系统内置的DHCP服务未自动启动,导致接入设备无法获取IP地址,始终卡在「获取IP地址」阶段。
可行解决方案
方案1:修复WiFi配置参数冲突(优先尝试,无需额外开发)
你现有代码中的WifiConfiguration配置存在参数冲突问题,是导致部分7.1设备热点异常的常见诱因,修改配置规则如下:
- 移除多余的
allowedAuthAlgorithms配置,同时配置LEAP、SHARED等多类认证算法会导致7.x系统加密协商失败 - 强制指定热点为2.4G频段,部分7.x设备默认优先使用5G频段,但驱动不支持第三方应用反射创建的5G热点
修改后的配置代码示例:
public void init() { SharedPreferences preferences = getSharedPreferences("datos", Context.MODE_PRIVATE); String contra = preferences.getString("contra", ""); wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE); wifiConfiguration = new WifiConfiguration(); wifiConfiguration.SSID = "SSID"; // 仅配置必要的加密参数,不要添加多余认证规则 wifiConfiguration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK); wifiConfiguration.allowedProtocols.set(WifiConfiguration.Protocol.RSN); wifiConfiguration.allowedProtocols.set(WifiConfiguration.Protocol.WPA); wifiConfiguration.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP); wifiConfiguration.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP); wifiConfiguration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP); wifiConfiguration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP); // 强制指定2.4G频段,apBand=0代表2.4G,1代表5G wifiConfiguration.apBand = 0; if (contra.isEmpty()) wifiConfiguration.preSharedKey = "123456789"; else wifiConfiguration.preSharedKey = contra; contrasena.setText(wifiConfiguration.preSharedKey); }
修改后重新测试,80%的设备可以通过该配置修复问题。
方案2:应用层内置轻量DHCP服务(根治系统缺陷,适配所有7.x设备)
如果修改配置后仍无法正常使用,直接在应用层实现简单的DHCP服务即可,不需要Root权限:
- 热点开启成功后,手动给热点网卡(通常为
wlan0或ap0)配置静态IP,比如192.168.43.1/24网段 - 集成开源轻量DHCP服务组件,监听UDP 67端口,给接入设备分配
192.168.43.2~192.168.43.100段的IP地址,网关和DNS统一设置为192.168.43.1 - 热点关闭时同步停止自定义DHCP服务
该方案完全不依赖系统自带的DHCP服务,是7.x版本热点问题的通用解决方案。
适配提示
Android 8.0及以上版本系统已经禁止第三方应用通过反射调用setWifiApEnabled接口,若需要适配更高版本系统,需改用官方提供的WifiManager#startLocalOnlyHotspot接口实现本地热点功能。
内容的提问来源于stack exchange,提问作者JESUS CORONEL
相关产品推荐
相关产品推荐

