Android 13(Pixel 4)多次尝试后无法连接WiFi问题求助
问题描述
无法连接隐藏WiFi网络,多次尝试后弹出提示:
未找到设备。请确保设备已开启且可连接。
使用的代码如下:
WifiNetworkSpecifier wifiNetworkSpecifier = new WifiNetworkSpecifier.Builder() .setSsid(<SSID>) .setWpa2Passphrase(<Password>) .setIsHiddenSsid(true) .build(); NetworkRequest networkRequest = new NetworkRequest.Builder() .addTransportType(NetworkCapabilities.TRANSPORT_WIFI) .setNetworkSpecifier(wifiNetworkSpecifier) .build(); connectivityManager.requestNetwork(networkRequest, networkCallbacks);
问题仅出现在Google Pixel 4(Android 13)设备上,相同代码在Pixel系列Android 10、11、12版本设备上运行正常。
解决方案
1. 适配Android 13的权限要求
Android 13对隐藏WiFi连接新增了强制权限约束:
- 确保已申请并获得
ACCESS_FINE_LOCATION权限,隐藏网络的扫描必须依赖精确位置权限。 - 确认设备位置服务处于开启状态,即使App不需要获取位置信息,系统扫描隐藏WiFi也需要该服务运行。
2. 调整WifiNetworkSpecifier配置
尝试修改连接参数:
- 移除
setIsHiddenSsid(true),部分Android 13设备对该参数的处理逻辑有变更,不手动设置时系统可能自动识别隐藏网络。 - 改用更明确的安全参数配置替换
setWpa2Passphrase:
.setSecurityParams(new WifiNetworkSpecifier.Wpa2Params.Builder() .setPassphrase(<Password>) .build())
3. 主动触发WiFi扫描
Android 13可能不会自动扫描隐藏网络,需主动调用扫描接口:
WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); wifiManager.startScan();
注意:调用该方法需要ACCESS_FINE_LOCATION和CHANGE_WIFI_STATE权限,且Android 12+系统会限制扫描频率,避免频繁调用。
4. 修复系统层面问题
针对Pixel 4 Android 13的特定Bug:
- 升级系统到最新补丁版本,部分WiFi连接问题已在后续更新中修复。
- 重置网络设置(设置→系统→重置→重置网络设置),清除旧的WiFi配置后重新尝试连接。
内容的提问来源于stack exchange,提问作者Shanmugapriyan
相关产品推荐
相关产品推荐

