首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在我的Android应用中检测5G NR (SA/NSA)

在我的Android应用中检测5G NR (SA/NSA)
EN

Stack Overflow用户
提问于 2020-06-12 03:53:31
回答 1查看 2.1K关注 0票数 5

我正在尝试检测5G网络。我使用电话管理器获取NETWORK_TYPE。即使我在5G网络覆盖范围内,并且我的手机显示5G,我也无法获得NETWORK_TYPE_NR。NETWORK_TYPE总是13,即LTE。电话工程服务模式显示NR相关数据。有没有办法检测NR (独立或非独立)模式?

我还需要获取NR数据的Cell Information。我使用telephonyManager.getAllCellinfo(),但是我从来没有得到过cellinfonr的实例。

任何帮助都是非常感谢的。谢谢

EN

回答 1

Stack Overflow用户

发布于 2020-06-17 16:00:56

几周前我也遇到过同样的问题。在我的例子中,我想在Galaxy S20-5G上检测5G网络,但getDataNetworkType()总是返回13 NETWORK_TYPE_LTE。接下来是netmonster-core策略,这是我从它们中提取的代码,用来解决我的问题。

代码语言:javascript
运行
复制
public boolean isNRConnected(TelephonyManager telephonyManager) {
    try {
        Object obj = Class.forName(telephonyManager.getClass().getName())
                .getDeclaredMethod("getServiceState", new Class[0]).invoke(telephonyManager, new Object[0]);
        // try extracting from string
        String serviceState = obj.toString();
        boolean is5gActive = serviceState.contains("nrState=CONNECTED") ||
                serviceState.contains("nsaState=5") ||
                (serviceState.contains("EnDc=true") &&
                        serviceState.contains("5G Allocated=true"));
        if (is5gActive) {
            return true;
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return false;
}

下面是来自netmonster-core的完整检测器类:(DetectorLteAdvancedNrServiceState.kt)

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62332475

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档