gpt4 book ai didi

android - getAllCellInfo - 重复值

转载 作者:行者123 更新时间:2023-12-04 08:31:20 28 4
gpt4 key购买 nike

我正在使用 getAllCellInfo 从我的手机(unrooted LG G5 - 它的值(value))获取服务和相邻小区信息,但该函数返回所有相邻测量塔的重复数据。在我所在的地区,我的测试数据大部分时间都是3G(WCDMA)。这是我的 WCDMA 结果的摘录,显示了原始字符串和解析值(为便于阅读而引用的代码):

Site_0
Registered: true
dBm: -99
Raw str: CellIdentityWcdma:{ mMcc=655 mMnc=1 mLac=63 mCid=9538943 mPsc=190
mUarfcn=10562}

Site_1
Registered: false
dBm: -101
Raw str: CellIdentityWcdma:{ mMcc=2147483647 mMnc=2147483647 mLac=2147483647
mCid=2147483647 mPsc=477 mUarfcn=10562}

Site_2
Registered: false
dBm: -103
Raw str: CellIdentityWcdma:{ mMcc=2147483647 mMnc=2147483647 mLac=2147483647
mCid=2147483647 mPsc=331 mUarfcn=10562}

Site_3
Registered: false
dBm: -103
Raw str: CellIdentityWcdma:{ mMcc=2147483647 mMnc=2147483647 mLac=2147483647
mCid=2147483647 mPsc=364 mUarfcn=10562}

Site_4
Registered: false
dBm: -105
Raw str: CellIdentityWcdma:{ mMcc=2147483647 mMnc=2147483647 mLac=2147483647
mCid=2147483647 mPsc=50 mUarfcn=10562}

请注意,服务小区和相邻小区已被识别(已注册)并显示各自的信号强度(dBm),并给出了服务小区的小区标识数据,但相邻小区标识数据全部困惑(2147483647 = Integer.MAX_VALUE = unknown ,并重复 UARFCN)。我用来获取打印单元格信息的代码 + 我开始编写的帮助程序类:

        List<CellInfo> infos = tel.getAllCellInfo();
for (int i = 0; i<infos.size(); ++i) {
try {
CellInfo info = infos.get(i);
if (info instanceof CellInfoGsm)
{
//stuff
}
else if (info instanceof CellInfoLte)
{
//stuff
}
else if (info instanceof CellInfoWcdma)
{
WCDMAStruct wcdma = new WCDMAStruct(this);
wcdma.parse(((CellInfoWcdma)info).getCellIdentity());

list += "Site_"+i + "\r\n";
list += "Registered: " + info.isRegistered() + "\r\n";
CellSignalStrengthWcdma wcdmaS = ((CellInfoWcdma) info).getCellSignalStrength();
list += "dBm: " + wcdmaS.getDbm() + "\r\n";
list += "Raw str: " + wcdma.CellInfoStr + "\r\n\r\n";
}

} catch (Exception ex) {
Log.i("neighboring error 2: " ,ex.getMessage());
}

WCDMA辅助类的解析函数:

    //parse input data object to variables
public void parse(CellIdentityWcdma input)
{
CellInfoStr = input.toString();

CID = input.getCid();
if(CID == Integer.MAX_VALUE) //unknown
CID = UNKNOWN;

LAC = input.getLac();
if(LAC == Integer.MAX_VALUE) //unknown
LAC = UNKNOWN;

MCC = input.getMcc();
if(MCC == Integer.MAX_VALUE) //unknown
MCC = UNKNOWN;

MNC = input.getMnc();
if(MNC == Integer.MAX_VALUE) //unknown
MNC = UNKNOWN;

PSC = input.getPsc();
if(PSC == Integer.MAX_VALUE) //unknown
PSC = UNKNOWN;

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
{
chnlNum_DL = input.getUarfcn();
if(chnlNum_DL == Integer.MAX_VALUE)
chnlNum_DL = UNKNOWN;
else
{
FreqBand = getFreqBand(chnlNum_DL); //freq band from UARFCN
}
}
}

所以我不知道其他人是否遇到同样的问题,或者可以在他们的设备上进行测试?类似 Unresolved 帖子提出了相同的问题( 1 ),或者在某些设备和 SDK 版本上 getAllCellInfo() = null 的位置...有人请提供一些建议如何解决它吗?

最佳答案

在 WCDMA mCid=2147483647 中,这意味着 Cell 是Unknown。请查看此链接了解更多详情:fields included in Android CellInof data extracts .

关于android - getAllCellInfo - 重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48337100/

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