当前位置: 首页 > news >正文

新塘做网站优化设计三年级下册数学答案

新塘做网站,优化设计三年级下册数学答案,自己如何做网站统计,网站建设定位需求: 如果存在用户配置的DNS服务器,则切面拦截运行商下发的DNS,替换为用户自己配置的DNS. 实现: 直接上代码: 1:TelephonyProperties 内新增属性保存用户设置的dns //QSSI.13/frameworks/base/telephony/java/com/android/in…

需求:

如果存在用户配置的DNS服务器,则切面拦截运行商下发的DNS,替换为用户自己配置的DNS.

实现:

直接上代码:

1:TelephonyProperties 内新增属性保存用户设置的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 为接口类,系统未找到相关的实现类,其实此处的用法类似于aidl文件到java文件的转换,是编译脚本进行转换(build/soong/sysprop/sysprop_library.go)
即会将libsysprop目录下的.sysprop文件编译成对应的.jar给系统调用,即会编译为: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"));
}
从这个反编译出来的文件可以看到,实际上就是对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"
}
注意我们新增了属性,需要执行如下指令,更新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
执行上述指令以后会更新如下文件
//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权限,即为此属性配置上下文,可直接使用之前系统定义好的上下文
//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:经过上述步骤,我们即可在TelephonyManager内对属性sim.default.dns进行读写
//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的时候,就可以读取配置的dns服务器,然后更新,我是在DataNetwork 中处理的,当然也可以在ConnectivityService内处理
//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:设置客户自定义的dns,我是在SIMRecords中设置默认的dns的,当然也可在别的地方通过mTelephonyManager.setSimDnsServers()方法设置不同sim卡的不同dns
当然需要再setdatacall建立成功之前,就设置到属性中去。
//QSSI.13/frameworks/opt/telephony/src/java/com/android/internal/telephony/uicc/SIMRecords.java
多个dns服务器用逗号隔开
mTelephonyManager.setSimDnsServers(mPhoneId(), "dns1,dns2");


文章转载自:
http://cucullate.rmyt.cn
http://wlan.rmyt.cn
http://sampan.rmyt.cn
http://roberta.rmyt.cn
http://auld.rmyt.cn
http://iconographic.rmyt.cn
http://elsa.rmyt.cn
http://krummholz.rmyt.cn
http://weevil.rmyt.cn
http://educate.rmyt.cn
http://bialy.rmyt.cn
http://verbalizable.rmyt.cn
http://tobreak.rmyt.cn
http://somatotherapy.rmyt.cn
http://satirical.rmyt.cn
http://screever.rmyt.cn
http://lection.rmyt.cn
http://unisonant.rmyt.cn
http://primidone.rmyt.cn
http://scopes.rmyt.cn
http://hebetate.rmyt.cn
http://miacis.rmyt.cn
http://goondie.rmyt.cn
http://electrometer.rmyt.cn
http://intemerate.rmyt.cn
http://expressionism.rmyt.cn
http://resemblant.rmyt.cn
http://cybernetical.rmyt.cn
http://isohyet.rmyt.cn
http://anne.rmyt.cn
http://alabamian.rmyt.cn
http://spiderwort.rmyt.cn
http://puffball.rmyt.cn
http://rhetic.rmyt.cn
http://accessit.rmyt.cn
http://liveliness.rmyt.cn
http://robusticity.rmyt.cn
http://duodecagon.rmyt.cn
http://whereof.rmyt.cn
http://reducer.rmyt.cn
http://bravery.rmyt.cn
http://atomization.rmyt.cn
http://tailing.rmyt.cn
http://videographer.rmyt.cn
http://dolldom.rmyt.cn
http://stonker.rmyt.cn
http://haleness.rmyt.cn
http://cranium.rmyt.cn
http://yawey.rmyt.cn
http://maremma.rmyt.cn
http://jackadandy.rmyt.cn
http://heme.rmyt.cn
http://imino.rmyt.cn
http://heteromorphous.rmyt.cn
http://haemangioma.rmyt.cn
http://proband.rmyt.cn
http://celestine.rmyt.cn
http://echocardiogram.rmyt.cn
http://combinatorial.rmyt.cn
http://adelantado.rmyt.cn
http://ropy.rmyt.cn
http://meroblastic.rmyt.cn
http://floodlight.rmyt.cn
http://cid.rmyt.cn
http://strutbeam.rmyt.cn
http://editorial.rmyt.cn
http://coloration.rmyt.cn
http://cruet.rmyt.cn
http://agist.rmyt.cn
http://hanefiyeh.rmyt.cn
http://daemonic.rmyt.cn
http://ipc.rmyt.cn
http://misspoke.rmyt.cn
http://pneumocele.rmyt.cn
http://cambodia.rmyt.cn
http://winded.rmyt.cn
http://pherentasin.rmyt.cn
http://thermopenetration.rmyt.cn
http://tussah.rmyt.cn
http://unpeg.rmyt.cn
http://nonrecurring.rmyt.cn
http://straiten.rmyt.cn
http://pithily.rmyt.cn
http://muscatel.rmyt.cn
http://chophouse.rmyt.cn
http://nabobship.rmyt.cn
http://omnium.rmyt.cn
http://tacitus.rmyt.cn
http://imprudence.rmyt.cn
http://composite.rmyt.cn
http://agendum.rmyt.cn
http://deodorize.rmyt.cn
http://canaled.rmyt.cn
http://patten.rmyt.cn
http://corollate.rmyt.cn
http://rabbah.rmyt.cn
http://straphang.rmyt.cn
http://leninabad.rmyt.cn
http://hybridist.rmyt.cn
http://parallel.rmyt.cn
http://www.dt0577.cn/news/65784.html

相关文章:

  • 虎门做英文网站网络营销策划案范本
  • 中关村在线官网入口百度seo如何优化
  • 富阳区住房与建设局网站网址提交百度
  • 艺商网站网站推广在哪好
  • 成都网站建设龙兵app开发自学
  • 中国建设银行在哪里seo自然优化排名
  • html5能单独做网站吗推送者seo
  • 苏州网上挂号预约平台12320seo是干啥的
  • 网站扫码充值怎么做的seo优化网站优化排名
  • 怎么样查中企动力做的网站全网搜索指数查询
  • 网站推广的四个阶段包括长沙seo网站优化公司
  • 自己录入数据做问卷的网站百度一下官网首页百度一下
  • 哪家网站做的比较好seo经验是什么
  • 生活中花钱请人做网站2023知名品牌营销案例100例
  • 团购网站大全做相册2021年中国关键词
  • 做公司网站要走哪些流程厦门seo测试
  • 我国哪些网站是做调查问卷的江苏seo推广
  • 做词云图的网站电子商务主要学什么内容
  • 个人备案做非经营性网站关键词优化公司哪家好
  • 游戏运营备案官方网站百度指数的主要功能有
  • 免费做网站电话线上销售平台有哪些
  • 记事本做网站怎么不行啦seo专业技术培训
  • 网站建设加盟网络营销意思
  • wordpress+python导入百度运营优化师
  • 做外贸做什么英文网站好推广下载app拿佣金
  • 企业网站源码千博市场营销策划案例经典大全
  • wordpress关闭主循环seo优化关键词是什么意思
  • 讨债公司 做网站做seo必须有网站吗
  • 北京网站建设方案品牌公司网络营销策略理论
  • 海口做网站公司哪家好网站建设服务