1. 关键字

OpenHarmony 4.1 Release;网络制式;使能;vendor;telephony;modem;

2. 需求描述

2.1 运行环境

  • 开发板型号:uis7885

  • 芯片:7885

  • 系统版本:OpenHarmony-4.1-Release(已该版本为基线)

  • 应用软件:modem适配so库,芯片modem闭源库

2.2 需求描述

手动设置SIM卡的网络制式。比如设置SIM驻网到3G网络。

2.3 操作步骤

1.开发板插入sim卡

2.开发板设备开机

3.进入设置-移动网络-移动数据-运营商选择

4.选择网络制式

比如选项3G网络制式,就会下发驻网3G的请求,下发给modem。

3. 流程图

下发网络制式设置的请求,流程如下

4. 代码分析

4.1 applications

应用端下发网络设置的请求,调用setPreferredNetwork()函数接口,函数接口说明如下链接

https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-telephony-kit/js-apis-radio-sys.md#preferrednetworkmode8

 

setPreferredNetwork()函数,在参数networMode中设置网络制式,说明如下

 

比如,需要设置4G优选驻网,就传递参数PREFERRED_NETWORK_MODE_LTE_TDSCDMS_WCDMA_GSM

4.2 core_service

在core_service层进行权限校验,检查权限是否正确。

 

发送请求给vendor适配层

 

4.3 vendor

vendor层是modem适配,根据不同的modem芯片,适配的代码各不相同。下面例子是OpenHarmony社区的代码,供大家参考。

设置网络制式是ReqSetPreferredNetwork()函数。

其中第1775行,下发AT命令给modem,设置SIM卡的网络制式。

 

把参数转成modem芯片对应的参数

 

5. 最后

设置SIM卡的网络制式与modem芯片强相关,各个不同的modem芯片可能会存在不同的差别,比如是否需要设置手动/自动驻网模式SetNetworkSelectionMode()。开发者需要和芯片商沟通其中细节。

Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐