首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在三星S20上检测到CellInfo NR

无法在三星S20上检测到CellInfo NR
EN

Stack Overflow用户
提问于 2020-09-29 19:26:16
回答 1查看 431关注 0票数 3

我正在尝试使用Android API在三星S20 (T-S20)上检测5G Nr小区信息

CellIdentityNr https://developer.android.com/reference/android/telephony/CellIdentityNr.html

CellSignalStrengthNr https://developer.android.com/reference/android/telephony/CellSignalStrengthNr

这是我的代码,它检测细胞信息:

代码语言:javascript
复制
try {
            if (cellInfo instanceof CellInfoGsm) {
                CellInfoGsm cellInfoGsm = (CellInfoGsm) cellInfo;
                logGSMCellInfo(cellInfoGsm, allCellInfoProps);
            } else if (cellInfo instanceof CellInfoLte) {
                CellInfoLte cellInfoLte = (CellInfoLte) cellInfo;
                logLTECellInfo(cellInfoLte, allCellInfoProps);
            } else if (cellInfo instanceof CellInfoCdma) {
                CellInfoCdma cellInfoCdma = (CellInfoCdma) cellInfo;
                logCDMACellInfo(cellInfoCdma, allCellInfoProps);
            } else if (cellInfo instanceof CellInfoWcdma) {
                CellInfoWcdma cellInfoWcdma = (CellInfoWcdma) cellInfo;
                logWCDMACellInfo(cellInfoWcdma, allCellInfoProps);
            } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
                if (cellInfo instanceof CellInfoTdscdma) {
                    CellInfoTdscdma cellInfoTdscdma = (CellInfoTdscdma) cellInfo;
                    logTDSCDMACellInfo(cellInfoTdscdma, allCellInfoProps);
                } else if (cellInfo instanceof CellInfoNr) {
                    CellInfoNr cellInfoNr = (CellInfoNr) cellInfo;
                    logNrCellInfo(cellInfoNr, allCellInfoProps);
                }
            }
            collectionOfCellInfo.add(allCellInfoProps);
        } catch (Exception e) {
            Log.e(TAG, "getLatestCellInfoAsCollection: Exception=" + e.getMessage());
            e.printStackTrace();
        }

问题是,即使手机在顶部栏中显示5G,表示5G连接,我仍然可以获得WCDMA小区信息,而我应该得到Nr.。

通过这个链接,我推测CellInfoNr对象只在NR-SA设备上收集,这就解释了为什么我无法在其他手机上获取Nr信息。但为什么我在三星S20上买不到呢?Detect 5G NR (SA/NSA) in my Android Application

是代码有问题,还是5G网络模式可用导致的?

另外,如何确认我的S20处于“独立(5G)”模式?

EN

回答 1

Stack Overflow用户

发布于 2021-02-22 04:13:06

哈希姆-我可以通过下面的代码确定网络是否连接-但我不知道如何让CellInfoNR获得5G信号强度。

你想好如何让CellInfoNR获取5G连接的所有细节了吗?

代码语言:javascript
复制
telephonyManager.listen(new CustomPhoneStateListener(c),PhoneStateListener.LISTEN_DISPLAY_INFO_CHANGED);

然后是这个类:

代码语言:javascript
复制
public class CustomPhoneStateListener extends PhoneStateListener {

Context context;

CustomPhoneStateListener(Context c) {
    this.context = c;
}

@Override
public void onDisplayInfoChanged(@NonNull TelephonyDisplayInfo telephonyDisplayInfo) {
    if (ActivityCompat.checkSelfPermission(context, android.Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
    } else {
        super.onDisplayInfoChanged(telephonyDisplayInfo);
        if (telephonyDisplayInfo.getOverrideNetworkType() == TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NR_NSA) {
            //do something
        }
        if (telephonyDisplayInfo.getOverrideNetworkType() == TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NR_NSA_MMWAVE) {
            //do something else
        }
    }

}

}

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

https://stackoverflow.com/questions/64118636

复制
相关文章

相似问题

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