android 区分wifi是5G还是2.4G

本文介绍了一种在Android设备上判断当前连接WiFi频段为5G还是2.4G的方法。通过使用WifiManager和WifiInfo类,获取到连接信息并解析频率字段,如果频率字段以'5'开头,则表示连接的是5G频段WiFi,反之则是2.4G频段。此外,还提供了一个兼容4.4版本的方法,通过遍历扫描结果,找到匹配的SSID,从而获取其频率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

http://bbs.csdn.net/topics/391033966?page=1

 

我一开始看这帖子,找不到答案,为了后来的人,我来回复吧。
WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
根据wifiInfo.getFrequency()可以判断是不是5G
应该将会返回4个数字
2字开头的话,就系2.4G;5字开头的话,就系5G。

最好用第一个数字来判断,而不要用全4个数字来判断,因为后面的有别的意义。

 

顺便说一下,以上的方法是在5.1的源码下的,若想兼容4.4就要这样:

WifiInfo wifiInfo = wifiManager.getConnectionInfo();
String tempSsidString = wifiInfo.getSSID();
if (tempSsidString != null && tempSsidString.length() > 2) {
wifiSsid = tempSsidString.substring(1, tempSsidString.length() - 1);
List<ScanResult> scanResults=wifiManager.getScanResults();
for(ScanResult scanResult:scanResults){
if(scanResult.SSID.equals(wifiSsid)){
scanResult.frequency;
break;
}
}
}

wifiinfo中有判断是否是5G的函数可调用   
 /**
     * @hide
     * TODO: makes real freq boundaries
     */
    public boolean is5GHz() {
        return ScanResult.is5GHz(mFrequency);
    }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值