android 系统数据业务---模式

本文详细介绍了Android系统中数据业务的模式,包括数据网络模式的默认值设定、开机数据网络设置流程,特别是Phone进程的角色。重点讲解了设置过程,如在开机时的多次设置、设置界面的操作,并涉及到TelephonyManager的相关设置方法。
摘要由CSDN通过智能技术生成

4 数据业务模式

在手机以及模块中,移动/联通/电信的信号都会有类似下面的2G/3G/4G切换,

       图一 信号模式切换图

这些值的定义都在RILConstants.java中,如下,

/* NETWORK_MODE_* See ril.h RIL_REQUEST_SET_PREFERRED_NETWORK_TYPE */
int NETWORK_MODE_WCDMA_PREF = 0; /* GSM/WCDMA (WCDMA preferred) */
int NETWORK_MODE_GSM_ONLY   = 1; /* GSM only */
int NETWORK_MODE_WCDMA_ONLY  = 2; /* WCDMA only */
int NETWORK_MODE_GSM_UMTS   = 3; /* GSM/WCDMA (auto mode, according to PRL)
int NETWORK_MODE_CDMA       = 4; /* CDMA and EvDo (auto mode, according to PRL)
int NETWORK_MODE_CDMA_NO_EVDO   = 5; /* CDMA only */
int NETWORK_MODE_EVDO_NO_CDMA   = 6; /* EvDo only */
int NETWORK_MODE_GLOBAL   = 7; /* GSM/WCDMA, CDMA, and EvDo*/                                            
int NETWORK_MODE_LTE_CDMA_EVDO  = 8; /* LTE, CDMA and EvDo */
int NETWORK_MODE_LTE_GSM_WCDMA  = 9; /* LTE, GSM/WCDMA */
int NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA = 10;
/* LTE, CDMA, EvDo, GSM/WCDMA */
int NETWORK_MODE_LTE_ONLY     = 11; /* LTE Only mode. */
int NETWORK_MODE_LTE_WCDMA  = 12; /* LTE/WCDMA */

当然,ril库中也会有对应值的定义。

2.1 数据网络模式默认值

在切换信号之前,首先看看android系统中信号的默认值。在加载完系统的SIM卡之后,然后才会设置信号的默认值。

主要流程图如下,

                                                   图二 获取数据网络默认值流程图

该流程图分为2个进程,左半部分为系统服务所在的进程,又半部分为phone进程。

主要的步骤如下,

1,android系统启动加载sim卡完成之后,发送ACTION_INTERNAL_SIM_STATE_CHANGED广播;

2, 系统服务所在的进程的SubscriptionInfoUpdater的构造方法中会注册该广播, sReceiver对该广播的处理如下,

else if (action.equals(IccCardProxy.ACTION_INTERNAL_SIM_STATE_CHANGED)) {
  if (IccCardConstants.INTENT_VALUE_ICC_LOCKED.equals(simStatus)) {//s
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值