有谁知道列表中的单元格索引是否从返回TelephonyManager.getAllCellInfo()
与SIM卡槽号有关吗?
我正在使用 Android API 24...
经过一番实验,似乎运行该方法updateCellInfo
- 如下所述 - 始终返回一个列表,其中第一个索引对应于设备的最后一个 SIM 插槽,最后一个索引对应于设备的第一个 SIM 插槽。
有人能证实这一点吗?这种相关性合理吗?
private ArrayList<CellInfo> updateCellInfo(ArrayList<CellInfo> cellInfo)
{
//Create new ArrayList
ArrayList<CellInfo> cellInfos= new ArrayList<>();
//cellInfo is obtained from telephonyManager.getAllCellInfo()
if(cellInfo.size()!=0)
{
for (int i = 0; i < cellInfo.size(); i++)
{
//Return registered cells only
int index=0;
CellInfo temp=cellInfo.get(i);
if (temp.isRegistered())
{
cellInfos.add(index, temp);
index++;
}
}
}
return cellInfos;
}
只是为其他有同样问题的人添加这个答案。
将 CellInfo 连接到 SlotId 的正确方法是收集活动订阅列表 (订阅信息 https://developer.android.com/reference/android/telephony/SubscriptionInfo.html),其中包含 SlotIndex 信息,并将其 MNC 代码与 CellInfo MNC 代码交叉引用。
如果你看一下代码可能会更容易......
private CellInfo getSlotCellInfo(int slotIndex){
ArrayList<CellInfo> allCellInfo = new ArrayList<>(telephonyManager.getAllCellInfo());
SubscriptionManager subscriptionManager = SubscriptionManager.from(getActivity());
List<SubscriptionInfo> activeSubscriptionInfoList = subscriptionManager.getActiveSubscriptionInfoList();
SubscriptionInfo subscriptionInfo;
for (int i = 0; i < activeSubscriptionInfoList.size(); i++) {
SubscriptionInfo temp = activeSubscriptionInfoList.get(i);
if (temp.getSimSlotIndex() == slotIndex) {
subscriptionInfo=temp;
break;
}
}
for (int index = 0; index < allCellInfo.size(); index++) {
int mnc = 0;
CellInfo temp = allCellInfo.get(index);
String cellType = checkCellType(temp);
if (cellType == "GSM") {
CellIdentityGsm identity = (((CellInfoGsm) temp).getCellIdentity());
mnc = identity.getMnc();
} else if (cellType == "WCDMA") {
CellIdentityWcdma identity = (((CellInfoWcdma) temp).getCellIdentity());
mnc = identity.getMnc();
} else if (cellType == "LTE") {
CellIdentityLte identity = (((CellInfoLte) temp).getCellIdentity());
mnc = identity.getMnc();
}
if (mnc == subscriptionInfo.getMnc()) {
return temp;
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)