gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 00:04:18 33 4
gpt4 key购买 nike

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

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

细胞信号强度编号 https://developer.android.com/reference/android/telephony/CellSignalStrengthNr

这是我检测单元格信息的代码:

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 连接,但我在应该获取 Nr 时却获取了 WCDMA 小区信息。

从这个链接,我了解到 CellInfoNr 对象仅在 NR-SA 设备上收集,这可以解释为什么我无法在其他手机上获取 Nr 信息。但为什么我在三星 S20 上看不到它? Detect 5G NR (SA/NSA) in my Android Application

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

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

最佳答案

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

您是否知道如何获取 CellInfoNR 以获取有关 5G 连接的所有详细信息?

telephonyManager.listen(new CustomPhoneStateListener(c),PhoneStateListener.LISTEN_DISPLAY_INFO_CHANGED);

然后这是类:

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
}
}

}

关于java - 无法在三星 S20 上检测到 CellInfo NR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64118636/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com