You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android 10调用WifiManager.getNetworkSuggestions()致应用崩溃求助

问题分析与解决方案

你遇到的问题核心是:WifiManager.getNetworkSuggestions()方法实际上是Android 11(API 30)才新增的,并非Android 10(API 29)。虽然官方文档提到Network Suggestions API从Android 10开始可用,但其中的getNetworkSuggestions()方法属于后续版本补充的能力,这就是为什么你的代码在Android 11正常运行,但Android 10崩溃。

解决步骤

1. 增加API版本判断

在调用该方法前必须先检查系统API版本,避免在Android 10及以下版本触发方法不存在的错误:

val existingPasspointSuggestions = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
    wifiManager.networkSuggestions.filter { it.passpointConfig != null }
} else {
    // Android 10及以下版本的替代处理逻辑
    emptyList()
}

2. Android 10获取Passpoint配置的替代方案

如果需要在Android 10中获取Passpoint相关配置,可通过WifiManager.getConfiguredNetworks()获取已配置的网络,再筛选Passpoint类型的配置:

val passpointConfigs = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
    wifiManager.configuredNetworks?.filter { network ->
        // 判断是否为Passpoint配置
        network.enterpriseConfig?.enterpriseMatch?.isPasspoint == true
    } ?: emptyList()
} else {
    emptyList()
}

3. 验证权限与SDK版本配置

确保你的应用build.gradle中的targetSdkVersion设置为30或更高,同时在Manifest中声明必要权限:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<!-- Android 12及以上需要额外定位权限 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

内容的提问来源于stack exchange,提问作者YadavK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 12:59:14