Xamarin C# 如何从 android CellSignalStrengthLte.Rsrp 获取

问题描述

如何从 Android 获取 CellSignalStrengthLte.Rsrp 值? 请给我一些例子

我尝试使用 TelephonyManager,但只有 SignalStrength 可用,我看不到 SignalStrengthLTE 可用。

https://docs.microsoft.com/en-us/dotnet/api/android.telephony.cellsignalstrengthlte.rsrp?view=xamarin-android-sdk-9#Android_Telephony_CellSignalStrengthLte_Rsrp

TelephonyManager mTel;
mTel = (TelephonyManager)GetSystemService(TelephonyService);
return mTel.GetImei(0).ToString()+" " + mTel.SignalStrength.Level.ToString();

解决方法

您可以得到如下所示的 SignalStrengthLTE

TelephonyManager mTel;
mTel = (TelephonyManager)GetSystemService(TelephonyService);

CellInfoLte cellInfoLte = (CellInfoLte)mTel.AllCellInfo[0];
        CellSignalStrengthLte cellSignalStrengthLte = cellInfoLte.CellSignalStrength;
,
    TelephonyManager tm = (TelephonyManager)this.GetSystemService(Context.TelephonyService);
var cellInfoList = tm.AllCellInfo;
foreach (var item in cellInfoList)
{
    if (item.GetType() == typeof(CellInfoLte))
    {
        var value = ((CellInfoLte)item).CellSignalStrength.Rsrp;
    }
}