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

Android 获取设备支持的移动网络类型列表的API问询

Android 获取设备支持的移动网络技术列表解决方案

版本适配实现方案

  • Android 12(API Level 31)及以上
    直接调用系统公开API TelephonyManager.getSupportedRadioAccessFamilies(),即可获取硬件支持的所有无线接入技术常量列表,你可以按照如下规则映射为2G/3G/4G/5G分类:

    常量映射参考规则:

    • 2G:包含NETWORK_TYPE_GSM、NETWORK_TYPE_CDMA、NETWORK_TYPE_EDGE、NETWORK_TYPE_GPRS等
    • 3G:包含NETWORK_TYPE_UMTS、NETWORK_TYPE_HSPA、NETWORK_TYPE_EVDO_0、NETWORK_TYPE_TD_SCDMA等
    • 4G:对应NETWORK_TYPE_LTE、NETWORK_TYPE_LTE_CA
    • 5G:对应NETWORK_TYPE_NR
  • Android 11(API Level 30)及以下
    系统没有公开直接获取全量支持网络的API,可通过两种兼容方案实现:
    1. 读取系统内置配置资源
      调用context.getResources().getIdentifier("config_supported_network_types", "array", "android")获取资源ID,再读取对应的整型数组做常量映射。这个配置是系统设置界面展示支持网络类型的数据源,绝大多数厂商ROM都适配了该配置,准确性较高。
    2. 可用网络反推
      如果读取系统资源失败,可申请ACCESS_FINE_LOCATION权限后调用TelephonyManager.getAvailableNetworks(),遍历返回的当前区域可搜索到的网络信息,反推设备支持的网络类型。注意该方案依赖当前区域的网络覆盖,硬件支持但无覆盖的网络类型可能漏判,建议做降级兼容处理。

权限要求

  • 所有版本调用TelephonyManager相关接口都需要提前申请READ_PHONE_STATE普通权限
  • Android 10及以上版本调用getAvailableNetworks()需要申请ACCESS_FINE_LOCATION危险权限
  • 部分国产定制ROM会额外限制电话相关接口的调用,若返回值为空可引导用户手动授予应用「电话信息」相关权限

适配注意事项

  • 不要通过当前设备驻网的网络类型判断设备全部支持能力,比如当前使用4G卡无法代表设备不支持5G
  • 若遇到厂商修改了系统配置键值导致读取失败的情况,可以配合设备硬件型号白名单补充判断,比如已知一加5最高支持4G、一加9支持5G,可针对特定机型做兜底适配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 00:42:00