a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 系統(tǒng) > Android > 正文

android預(yù)置默認(rèn)的語音信箱號碼具體實現(xiàn)

2020-04-11 12:14:03
字體:
供稿:網(wǎng)友
有些SIM卡在出廠時并沒有預(yù)置VoiceMail number,但運營商又要求能夠根據(jù)PLMN去自適應(yīng)的從手機中讀取到預(yù)設(shè)的VM number。在此介紹以xml的方式預(yù)置VM number的方法,以及如何允許用戶去修改并能夠記住用戶的選擇。VM number使用的優(yōu)先級為: SIM卡讀取>用戶設(shè)置>xml預(yù)置。在用戶修改voice mail number時,優(yōu)先存儲到SIM卡。若SIM卡存儲失敗,則以IMSI為單位存儲到手機中。

1、支持以XML的方式預(yù)置VM number,文件名為:voicemail-conf.xml
文件的內(nèi)容格式為
復(fù)制代碼 代碼如下:

<?xml version='1.0' encoding='utf-8'?>
<voicemail>
<voicemail numeric="46000" carrier="CMCC" vmnumber="10086" vmtag="CMCC voicemail" />
</voicemail>

2、關(guān)于文件的位置
文件在手機中的位置:system/etc
文件在工程中的位置(GB, GB2): vendor/mediatek/etc
文件在工程中的位置(ICS及以后): mediatek/source/frameworks/telephony/etc
對于GB、GB2的版本,還需要在在build/target/product/xxx.mk (xxx為工程名)中,添加語句PRODUCT_COPY_FILES += vendor/mediatek/etc/voicemail-conf.xml:system/etc/voicemail-conf.xml
對于ICS及ICS2的版本,還需要在build/target/product/common.mk中,添加語句PRODUCT_COPY_FILES += mediate/source/frameworks/telephony/etc/voicemail-conf.xml:system/etc/voicemail-conf.xml
對于JB及JB2以后的版本,還需要在build/target/product/common.mk中,添加語句PRODUCT_COPY_FILES += mediate/frameworks/base/telephony/etc/voicemail-conf.xml:system/etc/voicemail-conf.xml

3、使SIM卡中的VM number優(yōu)先于預(yù)置號碼的方法
將SIMRecords.java (frameworks/base/telephony/java/com/android/internal/telephony/gsm)中的函數(shù)private setVoiceMailByCountry(String spn)中的語句if (mVmConfig.containsCarrier(spn))修改為
if (TextUtils.isEmpty(voiceMailTag) && TextUtils.isEmpty(voiceMailNum) && mVmConfig.containsCarrier(spn))
4、在使用了voicemail-conf.xml來預(yù)置VM number后,使終端用戶可以修改VM number的方法
1) 在SIMRecords.java中添加語句import android.text.TextUtils;
2) 在SIMRecords.java中添加一個成員變量boolean isSetByCountry = false;
3) 將SIMRecords.java中的函數(shù)private setVoiceMailByCountry(String spn)修改為
復(fù)制代碼 代碼如下:

private void setVoiceMailByCountry(String spn) {
if (TextUtils.isEmpty(voiceMailTag) && TextUtils.isEmpty(voiceMailNum) && mVmConfig.containsCarrier(spn))
{
// isVoiceMailFixed = true; //注釋掉此語句以讓用戶能夠修改
isSetByCountry = true; //讓GsmPhone知道這是從xml中讀取的
voiceMailNum = mVmConfig.getVoiceMailNumber(spn);
voiceMailTag = mVmConfig.getVoiceMailTag(spn);
}

4) 在GSMPhone.java (frameworks/base/telephony/java/com/android/internal/telephony/gsm)中的函數(shù)handleMessage中的語句case EVENT_SIM_RECORDS_LOADED:中將語句 if (imsi != null && imsiFromSIM != null && !imsiFromSIM.equals(imsi))
{

}
修改為 
復(fù)制代碼 代碼如下:

SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(getContext());
// 當(dāng)相應(yīng)卡槽更換SIM卡后,是否清除用戶對之前SIM卡的VM number設(shè)置
boolean clear_if_change_sim = sp.getBoolean(“clear_if_change”, false);
if (clear_if_change_sim && imsi != null && imsiFromSIM != null && !imsiFromSIM.equals(imsi)){
//storeVoiceMailNumber(null);
Log.d(LOG_TAT, “reset vm number because sim changed”);
SharedPreferences.Editor editor = sp.edit();
editor.remove(getVmSimImsi());
editor.apply();
setVmSimImsi(null);
}

5) 將GSMPhone.java中的函數(shù)private void storeVoiceMailNumber(String number)中的語句editor.putString(VM_NUMBER+mySimId, number);修改為editor.putString(getSubscriberId(), number); //不再使用卡槽作為保存VM number的單位,而使用IMSI
6) 將GSMPhone.java中的函數(shù)public String getVoiceMailNumber()中的語句if (TextUtils.isEmpty(number))修改為 if (TextUtils.isEmpty(number) || ((SIMRecords)mIccRecords).isSetByCountry) //如果SIM卡中
//無VM number或是通過voicemail-conf.xml來設(shè)置的,則應(yīng)該讀取一下Preference,看是否用戶
//對此SIM卡設(shè)置過VM number。
并且將語句number = sp.getString(VM_NUMBER+mySimId, null);修改為
復(fù)制代碼 代碼如下:

Log.d(LOG_TAG, vm num from simRecords, num= “+number+” is from factory= “+ ((SIMRecords)mIccRecords).isSetbyCountry);
String temp = sp.getString(getSubscriberId(), null);
if (temp != null)
{
Log.d(LOG_TAG, “replace vm num with user defined, num= “+temp);
number = temp;
}
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产精品丰满对白在线观看 | 中文字幕在线网址 | 超碰日韩在线 | 一本大道综合伊人精品热热 | 中文久久| 日韩欧美久久 | 欧美日韩精品综合 | 亚洲国产精品久久久久 | 精品久久网站 | 日韩在线欧美 | 亚洲自啪| 一区二区三区亚洲 | 青草青草久热精品视频在线观看 | av一二三区 | 一级黄色毛片子 | 国产美女在线播放 | 久久99久久98精品免观看软件 | www一区| 国产一级特黄毛片在线毛片 | 欧美日韩国产综合在线 | 可以看黄的视频 | 欧美一级二级三级 | 亚洲福利一区 | 日韩在线一区二区 | 黄色免费在线观看 | 国产精品伦一区二区三级视频 | 91精品久久久久久久久久 | 成人一边做一边爽爽视频 | 日本在线www | 超碰成人免费 | av在线片| 视频一区在线播放 | 女同理伦片在线观看禁男之园 | 在线看亚洲 | 欧美电影一区 | 97香蕉久久国产超碰青草软件 | 久久伊人av | 欧美日韩亚洲一区二区 | 一区二区三区日韩 | 五月婷婷六月色 | 久久91久久久久麻豆精品 |