Platform:Android-7.1.1_r22
开机怎么设置DDS?
Settings的SimDialogActivity中调用SubscriptionManager.setDefaultDataSubId()
进而调用SubscriptionController.setDefaultDataSubId(int subId)
public void setDefaultDataSubId(int subId) {
......
// 保存默认数据卡,并发送广播ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED
Settings.Global.putInt(mContext.getContentResolver(),
Settings.Global.MULTI_SIM_DATA_CALL_SUBSCRIPTION, subId);
broadcastDefaultDataSubIdChanged(subId);
}
有多个地方会收到广播ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED,
PhoneSwitcher收到后会发送RIL_REQUEST_ALLOW_DATA(false/true),
SubscriptionMonitor收到会为新的DDS发送SETUP_DATA_CALL。
PhoneSwitcher收到广播ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED
// onEvaluate(REQUESTS_UNCHANGED, "defaultChanged");
private void onEvaluate(boolean requestsChanged, String reason) {
......
boolean diffDetected = requestsChanged;
final int dataSub = mSubscriptionController.getDefaultDataSubId(); // SubscriptionController中已经修改
if (dataSub != mDefaultDataSubscription) {
sb.append(" default ").append(mDefaultDataSubscription).append("->").append(dataSub);
mDefaultDataSubscription = dataSub;
diffDetected = true;
}
...
双卡数据切换
最新推荐文章于 2023-08-22 16:24:51 发布
本文详细介绍了Android系统中双卡数据切换的过程,从Settings的SimDialogActivity开始,涉及SubscriptionController、PhoneSwitcher和SubscriptionMonitor等组件如何响应ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED广播,以及DcTracker和ApnContext如何管理数据连接的请求与释放,揭示了切换默认数据卡时的数据连接管理逻辑。
摘要由CSDN通过智能技术生成