Flutter Android 14无法获取WiFi SSID问题求助
位置权限未实际授予或应用处于后台
Android 14对位置权限管控更严格,就算你在Manifest里加了ACCESS_FINE_LOCATION、ACCESS_COARSE_LOCATION,也必须让用户手动授予精确位置权限,而且应用得处于前台状态才能拿到SSID。如果应用在后台,或者用户没给权限,系统只会返回<unknown ssid>或者空值。先检查有没有弹出权限请求框让用户授权,别只加了Manifest就完事。缺少Android 14新增的NEARBY_WIFI_DEVICES权限
从Android 14开始,获取WiFi SSID、BSSID这类信息,除了位置权限,还必须在Manifest里添加NEARBY_WIFI_DEVICES权限:<uses-permission android:name="android.permission.NEARBY_WIFI_DEVICES" />同时记得加上WiFi功能声明:
<uses-feature android:name="android.hardware.wifi" />这个权限不需要运行时请求,加在Manifest里就行,但少了它系统会直接限制SSID的获取。
设备未连接WiFi或连接的是隐藏SSID网络
如果当前设备没连WiFi,或者连的是隐藏SSID的网络,系统默认会返回<unknown ssid>,这是系统的保护机制,和你用的库没关系。先确认设备确实连了正常的非隐藏WiFi。第三方库未适配Android 14
你用的network_info_plus、wifi_iot、connectivity_plus这些库,如果版本比较旧,可能没适配Android 14的新权限规则。试试把库更新到最新版本,或者直接用Android原生API测试:WifiManager.getConnectionInfo().getSSID(),如果原生API也拿不到,那肯定是权限配置的问题,不是库的锅。
内容的提问来源于stack exchange,提问作者sosnus

