呼叫转移设置
Android5.0之后的版本,手机的CallSetting设置一般在package/APPs/service/Telephony中
下面为呼叫转移流程图,包括应用层与RIL的request
1.CallFeartureSettingActivity.java为通话设置入口
//在谷歌的源码中没有这个类,可以直接看2、CallFeatureSetting
在onResume方法中判断手机是单卡还是双卡
单卡直接通过CallFeatureSetting进入补充业务的设置界面,双卡先进入PhoneAccountSettingActivity的双卡选择界面,再通过PhoneAccountSettingFragmentNew选择某个sim卡,以intent进入CallFeatureSetting的activity
2.CallFeatureSetting设置补充业务
CallFeatureSetting中的onResume中调用init,
if (carrierConfig.getBoolean(CarrierConfigManager.KEY_WORLD_PHONE_BOOL)) {
cdmaOptions.setIntent(mSubscriptionInfoHelper.getIntent(CdmaCallOptions.class));
gsmOptions.setIntent(mSubscriptionInfoHelper.getIntent(GsmUmtsCallOptions.class));
} else {
prefSet.removePreference(cdmaOptions);
prefSet.removePreference(gsmOptions);
int phoneType = mPhone.getPhoneType();
if (carrierConfig.getBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_settings_BOOL)) {
prefSet.removePreference(fdnButton);
} else {
if (phoneType == Phoneconstants.PHONE_TYPE_CDMA) {
prefSet.removePreference(fdnButton);//固定拨号
if (!carrierConfig.getBoolean(
CarrierConfigManager.KEY_VOICE_PRIVACY_disable_UI_BOOL)) {
addPreferencesFromResource(R.xml.cdma_call_privacy);