android 判断5g,Android 5G判断

本文介绍了在Android中判断5G网络状态的方法,通过反射调用ServiceState的getHwNetworkType方法来获取网络类型,其中20表示5G网络。这种方法在华为Mate30 5G版上有效,但可能为华为特有,对于其他设备的兼容性未知,使用时需谨慎。
摘要由CSDN通过智能技术生成

之前需要用到5G网络信息,花了很长时间才去研究怎么判断是否是5G信号,但无论是官方说明的CellInfoNr,CellIdentityNr,CellSignalStrengthNr,最后连一个网络连接callback都用过了,在华为mate30 5G版上拿到的都是LTE(13),真的是心态爆炸。

一次偶然的机会看到ServiceState类,发现它有一个getNrState的方法,查了一下,返回为3的时候就是5G网络,详细代码如下

/**

* Get the NR 5G state of the mobile data network.

* @return the NR 5G state.

* @hide

*/

public @NRState int getNrState() {

final NetworkRegistrationInfo regInfo = getNetworkRegistrationInfo(

NetworkRegistrationInfo.DOMAIN_PS, AccessNetworkConstants.TRANSPORT_TYPE_WWAN);

if (regInfo == null) return NetworkRegistrationInfo.NR_STATE_NONE;

return regInfo.getNrState();

}

是一个隐藏的方法,但还是迫不及待的用反射试了一下

private boolean is5GConnected(){

TelephonyManager telephonyManager = (TelephonyManager

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值