国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

新塘做網(wǎng)站東莞有哪些做推廣的網(wǎng)站

新塘做網(wǎng)站,東莞有哪些做推廣的網(wǎng)站,網(wǎng)站建設(shè)從零開始教程,陜西省建設(shè)網(wǎng)一體化平臺官網(wǎng)需求: 如果存在用戶配置的DNS服務(wù)器,則切面攔截運(yùn)行商下發(fā)的DNS,替換為用戶自己配置的DNS. 實(shí)現(xiàn): 直接上代碼: 1:TelephonyProperties 內(nèi)新增屬性保存用戶設(shè)置的dns //QSSI.13/frameworks/base/telephony/java/com/android/in…

需求:

如果存在用戶配置的DNS服務(wù)器,則切面攔截運(yùn)行商下發(fā)的DNS,替換為用戶自己配置的DNS.

實(shí)現(xiàn):

直接上代碼:

1:TelephonyProperties 內(nèi)新增屬性保存用戶設(shè)置的dns
//QSSI.13/frameworks/base/telephony/java/com/android/internal/telephony/TelephonyProperties.java/*** PROPERTY_SIM_DEFAULT_DNS is to set the default DNS*/static String PROPERTY_SIM_DEFAULT_DNS = "sim.default.dns";
這里我們注意下TelephonyProperties 為接口類,系統(tǒng)未找到相關(guān)的實(shí)現(xiàn)類,其實(shí)此處的用法類似于aidl文件到j(luò)ava文件的轉(zhuǎn)換,是編譯腳本進(jìn)行轉(zhuǎn)換(build/soong/sysprop/sysprop_library.go)
即會將libsysprop目錄下的.sysprop文件編譯成對應(yīng)的.jar給系統(tǒng)調(diào)用,即會編譯為:PlatformProperties.jar,我們可以把以下目錄中的源碼文件拖到AS看下
目錄:QSSI.13\out\soong\.intermediates\system\libsysprop\srcs\PlatformProperties\android_common\javac\PlatformProperties.jar
我們截取部分TelephonyProperties.class代碼看下
public static Optional<Boolean> airplane_mode_on() {String value = SystemProperties.get("persist.radio.airplane_mode_on");return Optional.ofNullable(tryParseBoolean(value));
}public static void airplane_mode_on(Boolean value) {SystemProperties.set("persist.radio.airplane_mode_on", value == null ? "" : (value ? "1" : "0"));
}
從這個(gè)反編譯出來的文件可以看到,實(shí)際上就是對SystemProperties做了一層封裝。
2:在TelephonyProperties.sysprop 中定義屬性
//QSSI.13/system/libsysprop/srcs/android/sysprop/TelephonyProperties.sysprop
# set default dns list
prop {api_name: "sim_default_dns"type: StringListscope: Publicaccess: ReadWriteprop_name: "sim.default.dns"
}
注意我們新增了屬性,需要執(zhí)行如下指令,更新api文件,具體的詳見腳本文件:/build/soong/scripts/freeze-sysprop-api-files.sh
m PlatformProperties-dump-api && rm -rf system/libsysprop/srcs/api/PlatformProperties-current.txt && cp -f out/soong/.intermediates/system/libsysprop/srcs/PlatformProperties_sysprop_library/api-dump.txt system/libsysprop/srcs/api/PlatformProperties-current.txt
執(zhí)行上述指令以后會更新如下文件
//QSSI.13/system/libsysprop/srcs/api/PlatformProperties-current.txt
prop {api_name: "sim_default_dns"type: StringListaccess: ReadWriteprop_name: "sim.default.dns"}
3:我們新增了屬性為sim.default.dns,我們還需要增加selinux權(quán)限,即為此屬性配置上下文,可直接使用之前系統(tǒng)定義好的上下文
//QSSI.13/system/sepolicy/private/property_contexts
sim.default.dns                u:object_r:telephony_status_prop:s0 exact string
//QSSI.13/system/sepolicy/prebuilts/api/33.0/private/property_contexts
sim.default.dns                u:object_r:telephony_status_prop:s0 exact string
4:經(jīng)過上述步驟,我們即可在TelephonyManager內(nèi)對屬性sim.default.dns進(jìn)行讀寫
//QSSI.13/frameworks/base/telephony/java/android/telephony/TelephonyManager.java/*** Set TelephonyProperties.default_dns for dns.** @hide*/public void setSimDnsServers(int phoneId, String dnsStr) {if (SubscriptionManager.isValidPhoneId(phoneId)) {List<String> newList = new ArrayList();if (!TextUtils.isEmpty(dnsStr)) {List<String> tList = updateTelephonyProperty(TelephonyProperties.sim_default_dns(), phoneId, dnsStr);newList.addAll(tList);}for (int i = 0; i < newList.size(); i++) {Log.e(TAG, "setSimDns...." + newList.get(i));}Log.e(TAG, "setSimDnsList...." + dnsStr + ":" + newList);TelephonyProperties.sim_default_dns(newList);}}/*** get TelephonyProperties.default_dns** @hide*/public String getSimDnsServers(int phoneId) {return getTelephonyProperty(phoneId, TelephonyProperties.sim_default_dns(), "");}
5:我們在建立datacall的時(shí)候,就可以讀取配置的dns服務(wù)器,然后更新,我是在DataNetwork 中處理的,當(dāng)然也可以在ConnectivityService內(nèi)處理
//QSSI.13/frameworks/opt/telephony/src/java/com/android/internal/telephony/data/DataNetwork.java/*** Update data network based on the latest {@link DataCallResponse}.** @param response The data call response from data service.*/private void updateDataNetwork(@NonNull DataCallResponse response) {.......//phoebe add for set default dns// Set DNS serversList<InetAddress> defaultDns = getDefaultDns(mPhone.getPhoneId());if (defaultDns != null && defaultDns.size() > 0) {loge("set  default dns:" + defaultDns);linkProperties.setDnsServers(defaultDns);} else {if (response.getDnsAddresses().size() > 0) {for (InetAddress dns : response.getDnsAddresses()) {if (!dns.isAnyLocalAddress()) {linkProperties.addDnsServer(dns);}}} else {loge("Empty dns response");}}....}public List<InetAddress> getDefaultDns(int phoneId) {String dnsStr = mTelephonyManager.getSimDnsServers(phoneId);logl("zmm add for getDefaultDns..." + dnsStr);String[] split = TextUtils.isEmpty(dnsStr) ? null : dnsStr.trim().split(",");if (split == null || split.length == 0) {return null;}List<InetAddress> dnsService = new ArrayList<>();try {for (String str : split) {if (!str.trim().isEmpty()) {InetAddress dns = InetAddress.parseNumericAddress(str);logl("zmm add for default dns..." + dns);dnsService.add(dns);}}} catch (Exception e) {e.printStackTrace();loge("zmm add for default dns..." + e.getMessage());}return dnsService;}
6:設(shè)置客戶自定義的dns,我是在SIMRecords中設(shè)置默認(rèn)的dns的,當(dāng)然也可在別的地方通過mTelephonyManager.setSimDnsServers()方法設(shè)置不同sim卡的不同dns
當(dāng)然需要再setdatacall建立成功之前,就設(shè)置到屬性中去。
//QSSI.13/frameworks/opt/telephony/src/java/com/android/internal/telephony/uicc/SIMRecords.java
多個(gè)dns服務(wù)器用逗號隔開
mTelephonyManager.setSimDnsServers(mPhoneId(), "dns1,dns2");

http://aloenet.com.cn/news/33455.html

相關(guān)文章:

  • 榆林國貿(mào)網(wǎng)站建設(shè)怎么做關(guān)鍵詞排名靠前
  • 新疆錦旭建設(shè)工程公司網(wǎng)站seo信息優(yōu)化
  • 比較出名的文創(chuàng)產(chǎn)品南寧百度seo
  • 深圳 微網(wǎng)站建設(shè)ydgcm獎券世界推廣網(wǎng)站
  • 如何判斷網(wǎng)站html5上海高端seo公司
  • 網(wǎng)站開源模板百度指數(shù)排名明星
  • app平臺網(wǎng)站搭建潮州seo建站
  • 雙語網(wǎng)站建設(shè)報(bào)價(jià)百度鏈接提交收錄入口
  • dw網(wǎng)頁設(shè)計(jì)期末作業(yè)seo的主要分析工具
  • 公司網(wǎng)站設(shè)計(jì)方案網(wǎng)站查詢是否安全
  • 天津做網(wǎng)站哪個(gè)公司好seo排名優(yōu)化工具推薦
  • 做游戲開發(fā)需要學(xué)哪些技術(shù)優(yōu)化大師下載安裝app
  • 網(wǎng)站建設(shè) 長沙百度推廣怎么提高關(guān)鍵詞排名
  • 勝芳網(wǎng)站建設(shè)qiansi全國疫情最新情況公布
  • 前端怎么做電商網(wǎng)站網(wǎng)絡(luò)營銷和網(wǎng)絡(luò)銷售的關(guān)系
  • 做論壇網(wǎng)站需要哪些前置審批申請一個(gè)網(wǎng)站需要多少錢
  • 網(wǎng)站域名備案需要資料網(wǎng)站內(nèi)鏈優(yōu)化
  • 專業(yè)的營銷型網(wǎng)站最新報(bào)價(jià)網(wǎng)絡(luò)推廣策劃
  • 怎么給網(wǎng)站做aapseo優(yōu)化專家
  • 廈網(wǎng)站建設(shè)培訓(xùn)學(xué)校創(chuàng)建網(wǎng)站要錢嗎
  • 做外貿(mào)網(wǎng)站需要什么卡西安網(wǎng)站快速排名提升
  • 外貿(mào)需要網(wǎng)站做生產(chǎn)車間展示友聯(lián)互換
  • 網(wǎng)站規(guī)劃與設(shè)計(jì)范文seo招聘網(wǎng)
  • 什么樣建網(wǎng)站百度的seo排名怎么刷
  • 建站之星怎么用國外網(wǎng)站搭建
  • 網(wǎng)站 css江門百度seo公司
  • 東莞市建設(shè)網(wǎng)站首頁百度怎樣發(fā)布作品
  • app開發(fā)及后期維護(hù)費(fèi)用重慶企業(yè)站seo
  • 陜西省建設(shè)廳網(wǎng)站三類b證磁力蜘蛛
  • 怎么做網(wǎng)絡(luò)推廣營銷seo專員的工作內(nèi)容