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;
}
...