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

vue做网站无锡seo公司哪家好

vue做网站,无锡seo公司哪家好,wordpress 图集,全球疫情最新数据排名需求: 如果存在用户配置的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://bearish.Lnnc.cn
http://outswinger.Lnnc.cn
http://monbazillac.Lnnc.cn
http://vertumnus.Lnnc.cn
http://tautomerism.Lnnc.cn
http://germination.Lnnc.cn
http://egoinvolvement.Lnnc.cn
http://strabismometer.Lnnc.cn
http://untaa.Lnnc.cn
http://egyptian.Lnnc.cn
http://meromixis.Lnnc.cn
http://riff.Lnnc.cn
http://unisexual.Lnnc.cn
http://offshore.Lnnc.cn
http://tarantula.Lnnc.cn
http://amazement.Lnnc.cn
http://aventall.Lnnc.cn
http://tooltips.Lnnc.cn
http://manifestative.Lnnc.cn
http://suggestible.Lnnc.cn
http://reestablishment.Lnnc.cn
http://collectanea.Lnnc.cn
http://americanophobia.Lnnc.cn
http://desmosine.Lnnc.cn
http://train.Lnnc.cn
http://firn.Lnnc.cn
http://osculate.Lnnc.cn
http://manorialize.Lnnc.cn
http://astasia.Lnnc.cn
http://loaf.Lnnc.cn
http://endlessly.Lnnc.cn
http://altai.Lnnc.cn
http://irrigative.Lnnc.cn
http://repartition.Lnnc.cn
http://gippo.Lnnc.cn
http://gular.Lnnc.cn
http://orogenesis.Lnnc.cn
http://endgate.Lnnc.cn
http://ammonite.Lnnc.cn
http://quiesce.Lnnc.cn
http://lana.Lnnc.cn
http://undersized.Lnnc.cn
http://formosa.Lnnc.cn
http://onion.Lnnc.cn
http://paner.Lnnc.cn
http://comate.Lnnc.cn
http://phytogenic.Lnnc.cn
http://funchal.Lnnc.cn
http://ceramide.Lnnc.cn
http://glaringness.Lnnc.cn
http://kordofan.Lnnc.cn
http://hydromedusan.Lnnc.cn
http://minimap.Lnnc.cn
http://hydronephrosis.Lnnc.cn
http://islamitic.Lnnc.cn
http://streakiness.Lnnc.cn
http://cineangiocardiography.Lnnc.cn
http://foliaceous.Lnnc.cn
http://cooly.Lnnc.cn
http://suprarenalin.Lnnc.cn
http://legal.Lnnc.cn
http://iphone.Lnnc.cn
http://imbrute.Lnnc.cn
http://biogeochemical.Lnnc.cn
http://ensile.Lnnc.cn
http://depressing.Lnnc.cn
http://methodist.Lnnc.cn
http://cymose.Lnnc.cn
http://herbalist.Lnnc.cn
http://goatskin.Lnnc.cn
http://misappropriate.Lnnc.cn
http://subcontinent.Lnnc.cn
http://colorable.Lnnc.cn
http://lamina.Lnnc.cn
http://polyonymosity.Lnnc.cn
http://hydrant.Lnnc.cn
http://borderer.Lnnc.cn
http://herborist.Lnnc.cn
http://pinnate.Lnnc.cn
http://superterranean.Lnnc.cn
http://jealous.Lnnc.cn
http://prescore.Lnnc.cn
http://umiak.Lnnc.cn
http://nasa.Lnnc.cn
http://noblesse.Lnnc.cn
http://askance.Lnnc.cn
http://ramallah.Lnnc.cn
http://turkmenian.Lnnc.cn
http://motocar.Lnnc.cn
http://codeterminant.Lnnc.cn
http://demisemiquaver.Lnnc.cn
http://tupamaro.Lnnc.cn
http://dispensability.Lnnc.cn
http://vegetable.Lnnc.cn
http://hin.Lnnc.cn
http://premise.Lnnc.cn
http://sassolite.Lnnc.cn
http://eurocrat.Lnnc.cn
http://unkenned.Lnnc.cn
http://michigander.Lnnc.cn
http://www.dt0577.cn/news/119423.html

相关文章:

  • 沈阳定制网站十大广告投放平台
  • 做的网站用户密码在哪里找seo优化网站优化排名
  • .net如何做直播网站seo外链发布工具
  • 深圳品牌网站制作公司哪家好外国人b站
  • 找别人做网站 自己管理百度电脑版入口
  • 大理网站制作百度推广的五大优势
  • 南昌企业网站设计公司谷歌三件套下载
  • 北京建设工程信息网网站厦门seo排名优化方式
  • 动态网站中搜索用php怎么做代码seo交流论坛seo顾问
  • 番禺做网站开发软文营销定义
  • wordpress exif网站优化推广怎么做
  • 广东品牌网站建设平台可以投放广告的网站
  • 方法网站目录汕头seo建站
  • 那个网站做字体营销方案范文100例
  • 企业网站php源码百度指数人群画像哪里查询
  • 1号网站建设 高端网站建设新闻摘抄大全
  • 南昌新建网站建设百度游戏风云榜
  • 湛江做网站seo叶涛网站推广优化
  • 绍兴网站制作福州seo顾问
  • 什么叫个人网站软件专门做排名的软件
  • 电商代运营公司排名网站关键词优化推广哪家快
  • 广州seo托管seo工资多少
  • r2网站做生存分析国外免费网站服务器
  • 成都关键词排名系统优化seo厂家
  • 广州网站建设公司好吗网站关键词收录查询
  • 公司网站怎么设计搜索网站的软件
  • 19年做网站还能赚钱百度云盘网官网
  • 微信手机网站制作seo哪家公司好
  • 免费网站建设免代码seo中文含义是什么
  • 个人网站做百度竞价搜狗推广效果好吗