我使用了一些命令来显示3G和4G环境中的一些参数,我成功地使用了这些命令来获得所需的parameters.But --它在5G (Nr)环境下不工作,有什么问题?我的api已经更新到29了。
private fun getCellInfo(cellInfo:CellInfo): HashMap<Any? ,String?> {
var netclass = getNetworkClass()
Log.d("MyActivity",netclass)
var map = hashMapOf<Any?, String?>()
if (cellInfo is CellInfoGsm) {
val cellIdentityGsm = cellInfo.cellIdentity
val cellSignalGsm = cellInfo.cellSignalStrength
map["cell_identity"]=cellIdentityGsm.cid.toString()
map["MCC"]=cellIdentityGsm.mcc.toString()
map["MNC"]=cellIdentityGsm.mnc.toString()
map["LAC"]=cellIdentityGsm.lac.toString()
map["RSSI"]=cellSignalGsm.dbm.toString()
map["RxLev"]=cellSignalGsm.asuLevel.toString()
map["Level_of_strength"]=cellSignalGsm.level.toString()
map["type"]="2"
} else if (cellInfo is CellInfoLte) {
val cellIdentityLte = cellInfo.cellIdentity
val cellSignalStrengthLte = cellInfo.cellSignalStrength
map["cell_identity"] = cellIdentityLte.ci.toString()
map["MCC"] = cellIdentityLte.mcc.toString()
map["MNC"] = cellIdentityLte.mnc.toString()
map["TAC"] = cellIdentityLte.tac.toString()
map["RSRP"] = cellSignalStrengthLte.rsrp.toString()
map["RSRQ"] = cellSignalStrengthLte.rsrq.toString()
map["Level_of_strength"] = cellSignalStrengthLte.level.toString()
map["type"] = "4"
} else if (cellInfo is CellInfoWcdma) {
val cellIdentityWcdma = cellInfo.cellIdentity
val cellSignalWcdma = cellInfo.cellSignalStrength
map["cell_identity"]=cellIdentityWcdma.cid.toString()
map["MCC"]=cellIdentityWcdma.mcc.toString()
map["MNC"]=cellIdentityWcdma.mnc.toString()
map["LAC"]=cellIdentityWcdma.lac.toString()
map["RSCP"]=cellSignalWcdma.dbm.toString()
map["Level_of_strength"]=cellSignalWcdma.level.toString()
map["type"]="3"
}else if (cellInfo is CellInfoNr){
val cellIdentityNr = cellInfo.cellIdentity
val cellSignalStrengthNr = cellInfo.cellSignalStrength
map["cell_identity"]=cellIdentityNr.Nci.toString() //wrong here
map["RSRP"]=cellSignalStrengthNr.asuLevel.toString()
}
map["net_type"]=netclass
map["plmn"] = tm.getNetworkOperator().toString()
return map
}发布于 2022-09-27 13:00:31
有两种类型的5G网络,SA和NSA,上面的类,返回的值的SA没有得到广泛的实现。国安局使用LTE作为信号,5G用于数据。因此,如果您正在使用公共运营商5G服务,它可能是美国国家安全局,你应该从allCellInfo中提取信息。
阿明。
https://stackoverflow.com/questions/73081343
复制相似问题