工作中碰到了相关的问题,所以决定写个文章记录一下,顺便再次回顾和理清思路
一、DDS(Default Data SIM)
我们平时日常在使用手机时,都会使用到这个功能,就是切数据卡,让用户选择用哪张SIM卡去上网
二、时序图如下:
相关的log也放一下:
(1)
notifyCarrierConfigChanged() #################
03-01 23:40:39.282 D/***** ( 2093): obtainMessage(EVENT_CARRIER_CONFIG_CHANGED, phoneId, subId).sendToTarget();
(2)
onCarrierConfigChanged() #################
03-01 23:40:39.849 D/MultiSimSettingController( 2093): onCarrierConfigChanged phoneId 0 subId 1
(3)
reEvaluateAll() #################
updateDefaults() #################
03-01 23:40:39.849 D/MultiSimSettingController( 2093): updateDefaults
03-01 23:40:39.851 D/MultiSimSettingController( 2093): [updateDefaultValues] change: 6
03-01 23:40:39.852 D/MultiSimSettingController( 2093): [updateDefaultValues] records: [1, 2]
03-01 23:40:39.852 D/MultiSimSettingController( 2093): [updateDefaultValues] Update default data subscription
03-01 23:40:39.852 D/MultiSimSettingController( 2093): [updateDefaultValue] Record.id: 1
03-01 23:40:39.881 D/MultiSimSettingController( 2093): [updateDefaultValue] Record.id: 2
03-01 23:40:39.881 D/MultiSimSettingController( 2093): [updateDefaultValue] updates to subId=2
(4)
updateUserPreferences() #################
03-01 23:40:39.883 D/MultiSimSettingController( 2093): updateUserPreferences: dds = 2 voice = -1 sms = -1
03-01 23:40:39.887 D/MultiSimSettingController( 2093): User pref subId = 1 current dds 2 next active subId 1 smart dds enabled false
(5)
setDefaultDataSubId() #################
03-01 23:40:39.888 D/SubscriptionController( 2093): [setDefaultDataSubId] num phones=2, subId=1
03-01 23:40:39.889 D/SubscriptionController( 2093): [setDefaultDataSubId] phoneId=0 subId=1 RAF=36868
03-01 23:40:39.889 D/SubscriptionController( 2093): [setDefaultDataSubId] phoneId=1 subId=2 RAF=36868
03-01 23:40:39.895 D/SubscriptionController( 2093): [broadcastDefaultDataSubIdChanged] subId=1
(6)
updateUserPreferences() #################
03-01 23:40:39.904 D/MultiSimSettingController( 2093): updateUserPreferences: after dds = 1 voice = -1 sms = -1
(7)
sendDefaultChangedBroadcast() #################
03-01 23:40:14.899 D/SubscriptionController( 2093): [sendDefaultChangedBroadcast] broadcast default subId changed phoneId=0 subId=1
03-01 23:40:39.900 D/KeyguardUpdateMonitor( 1983): received broadcast android.intent.action.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED
D/PhoneSwitcher( 2093): sendRilCommands: setPreferredDataModem - phoneId: 1