高通平台搜网特性,先搜SIM卡 然后搜漫游
时间: 2025-07-31 20:42:44 AIGC 浏览: 20
在高通平台上实现搜网特性,优先搜索SIM卡网络,然后搜索漫游网络,涉及多个模块的协作,包括Modem、RIL(Radio Interface Layer)以及上层的网络选择模块。以下是一个基于高通平台的搜网流程实现方案:
### 搜网流程概述
高通平台的搜网注册流程通常包括以下几个阶段:
1. **SIM卡初始化与PLMN读取**:开机后,Modem会首先读取SIM卡中的信息,包括Home PLMN(HPLMN)以及可能的优先级列表(如EF_SPN、EF_PNN等)。这些信息用于后续的网络选择[^1]。
2. **初始频段扫描(Full Band Scan)**:Modem会进行全频段扫描,尝试检测所有支持的频段中的可用网络。
3. **PLMN上报与优先级判断**:在扫描过程中,如果发现PLMN,会通过`PLMN_FOUND_IND`上报到NAS层。上报的PLMN会被与SIM卡中存储的VPLMN(Visited PLMN)进行比对,若匹配则提前终止全频段扫描[^2]。
4. **Stored频段扫描**:根据SIM卡中存储的频段信息,在特定频段中进行更精确的搜索。
5. **网络注册与服务建立**:一旦找到合适的PLMN,Modem会尝试注册到该网络,并建立后续的服务连接。
### 实现优先搜索SIM卡网络的机制
为了实现优先搜索SIM卡所属网络,可以在以下几个层面进行配置和优化:
#### 1. 修改NAS层PLMN选择逻辑
在`qcril_qmi_nas.cpp`中可以调整PLMN上报逻辑,例如在发现SIM卡所属网络(如CHN-UNICOM、CHINA MOBILE等)时立即终止全频段扫描,进入Stored频段搜索阶段[^3]。相关代码逻辑如下:
```cpp
if (is_plmn_in_sim(plmn)) {
stop_full_band_scan();
start_stored_band_scan(plmn);
}
```
#### 2. 配置Stored频段信息
SIM卡中通常会包含EF_AD(Administrative Data)字段,其中记录了归属网络的频段信息。Modem可以基于这些信息快速定位到正确的频段进行搜索,而不是全频段扫描。
#### 3. 优化网络优先级排序
在上报可选网络列表时,可以对SIM卡所属网络赋予更高的优先级,确保在多个PLMN共存时优先选择归属网络。例如:
```cpp
sort_network_list_by_priority(network_list, sim_home_plmn);
```
#### 4. 漫游网络延迟加载
在完成归属网络搜索失败后,再进行漫游网络搜索。可以通过设置一个超时机制或失败重试机制来控制何时开始搜索漫游网络。例如:
```cpp
if (home_network_search_failed()) {
start_roaming_network_search();
}
```
### 示例:搜网响应日志
以下是一个典型的搜网响应日志,展示了多个PLMN的发现过程:
```
[qcril_qmi_nas.cpp: 20825] qcril_qmi_nas_fill_network_scan_response: Network #1 - CHN-UNICOM2/UNICOM2/46001/2
[qcril_qmi_nas.cpp: 20825] qcril_qmi_nas_fill_network_scan_response: Network #2 - CHN-CT/CT/46011/3
[qcril_qmi_nas] RIL[0] qcril_qmi_nas_fill_network_scan_response: Network #3 - CHINA MOBILE2/CMCC2/46000/3
```
如果SIM卡归属网络为`CHN-UNICOM2/46001`,则应优先选择Network #1并停止后续扫描[^3]。
### 搜索顺序控制策略
| 阶段 | 搜索目标 | 条件 | 动作 |
|------|----------|------|------|
| 1 | SIM卡归属网络 | 匹配HPLMN或VPLMN | 停止扫描,注册网络 |
| 2 | 漫游网络 | 未找到归属网络 | 开始Stored频段扫描 |
| 3 | 其他可用网络 | 所有搜索失败 | 按优先级选择PLMN |
### 总结
在高通平台上实现优先搜索SIM卡网络、再搜索漫游网络的功能,主要依赖于以下几点:
- SIM卡PLMN信息的正确读取与解析
- NAS层PLMN上报逻辑的优化
- Stored频段配置的准确性
- 网络优先级排序机制的实现
通过在Modem层和RIL层进行适当配置和代码调整,可以有效提升搜网效率,减少用户在切换网络时的等待时间。
---
阅读全文
相关推荐



















