Android 13中WifiManager.ACTION_PICK_WIFI_NETWORK热点不显示问题求助
Android 13 调用ACTION_PICK_WIFI_NETWORK无热点显示的解决方案
核心原因
Android 13(API 33)对Wi-Fi权限体系做了隐私收紧,原有的ACCESS_WIFI_STATE和CHANGE_WIFI_STATE权限已不足以支持Wi-Fi热点的扫描与展示,必须新增NEARBY_WIFI_DEVICES权限。
具体解决方案
更新AndroidManifest.xml权限配置
在原有权限基础上,添加NEARBY_WIFI_DEVICES权限,并通过usesPermissionFlags声明无需关联位置权限(若你的应用不需要通过Wi-Fi获取位置信息):<uses-permission android:name="android.permission.NEARBY_WIFI_DEVICES" android:usesPermissionFlags="neverForLocation" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />若应用
targetSdkVersion设置为33及以上,NEARBY_WIFI_DEVICES是必填权限,否则会直接影响Wi-Fi相关功能运行。确认权限授予状态
NEARBY_WIFI_DEVICES属于NORMAL级权限,无需动态申请即可自动授予,但需确保应用未被系统或厂商的权限策略限制该权限。若测试中仍无热点显示,可前往设备应用权限设置页手动确认该权限是否启用。保持原有Intent调用逻辑
无需修改原Intent调用代码,但需确保应用处于前台活跃状态(你的应用已满足此条件):startActivity(new Intent(WifiManager.ACTION_PICK_WIFI_NETWORK));
额外排查点
部分厂商对Wi-Fi权限有额外定制限制,若上述配置后仍无效,可尝试:
- 检查设备系统设置中,应用是否被授予“查看Wi-Fi热点”类权限;
- 临时添加
ACCESS_FINE_LOCATION权限并动态申请(仅用于排查,若生效则说明设备强制关联了位置权限与Wi-Fi扫描)。
内容的提问来源于stack exchange,提问作者ThereBeDragons
相关产品推荐
相关产品推荐

