android系统之apn相关

本文详细介绍了APN配置的各类参数及其在不同场景下的应用,包括配置注意事项、常见故障及解决方案,帮助读者理解APN的工作原理。

工作一年了,好久没来,默默地当颗小螺丝钉。今天借此机会把学习的写一下,记录下。最近工作在交接,正好总结回顾,这一年,主要和三个字母打交道A,P,N。

APN概述:

APN 的类型分为web(internet),wap,mms三种类型,用于手机中上网时数据交换的接入点名称配置与显示。

APN配置的时候,出现的type的值主要有:defaultmms,supl,dunDefault常用于一般的数据业务,主要有internet,wap,web.mms类型用于彩信接收发送的业务;supl用于gprs上网;dun用于wifi等上网类型。

配置时注意事项:

1、在合入完成之后注意检查authtype=  authtype=“” 这种字串是不允许在apns-conf.xml 文件中出现的,会导致所有项目apn读取失败。

2、Type=””这个也不能为空,需求有时会省略它的配置,apnType=””值主要分为default,*,mms, supl等,在不确定的情况下,与需求工程师沟通清楚再合入。

3、注释的错误,在xml文件中,注释的格式为如  <!--- V9 Telia end-->  ,注意后面的必须是-->,否则会有编译不过的错误。

4、mcc和mnc一般合起来为五位,其中mnc的位数为2,如果出现个位数应该自动补全,如1,补为01。

5、如果需求中存在Authenticationnormal说明没有用户名和密码的话,这个鉴权是不需要的。

6、注意检查wapweb一般不涉及彩信等相关端口的配置,没有mmsport,mmsproxy..注意端口写正确。

7、关于authtype需求表中没有注明的情况下置为PAP or CHAP或者空(没有authtype这一项)都可以的。

authtype这一项未填写,不管有无用户名,会自动默认为PAP or CHAP

8dun类型的apn 就是专门用做tethering的。

如果没有dun类型的apn,默认用default的。dun后面加上default,是为了在tethering模式下可以进行下载操作。目前很多需求上明确写明只有dun,则按照需求处理。

 

 

检查方法:

1、验证其语法的正确性,可以直接双击用浏览器自带的编译xml检查其语法格式的正确性,不正确的会在浏览器末尾报错。

2、验证其读取的正确性:

请将配置文件替换到手机,验证一下配置文件的正确性:

方法:adb push apns-conf.xml system/etc 

然后在apnsetting界面 点击reset to default

3、修改手机预设apn的方法:

预设的文件在手机的 system/etc 目录

文件名字叫 apns-conf.xml ,可以使用 rm apns-conf.xml 命令将这个删了

然后到apn设置的界面去,恢复下默认设置,这个预设的就没有了,就可以手动设置了。

 

 

常见故障:

1、开发故障,APN没有拷贝在手机中

故障描述: APN没有拷贝在手机中,APN设置页面列表为空

故障分析:发现已经有APN文件,但是在版本中却没有发现相应的文件合入,检查

在相应的编译文件中分析是否有APN配置文件的添加语句。

代码修改:在项目分支APN文件所在目录下

app\ZTE_CUSTOM\XXX\android\device\zte\products\XXX.mk中添加语句:

PRODUCT_COPY_FILES += device/zte/products/apns-conf.xml:system/etc/apns-conf.xml

就可保证相应的APN文件添加到手机中。

2、自测,APN文件读取失败

故障描述:自测时,push APN配置文件到system/etc/后,执行“重置为默认APN”操作。

APN列表为空,说明APN文件读取失败。

故障分析APN文件参数配置错误,导致读取失败,可能的原因有

代码修改:检查1authtype若无需求,则不在配置表中列出该项,即不可以出现authtype “”authtype参数项中“”内不可为空);2Type项也不可为空。常见的Type值有default,mms,supl,*等。在不确定的情况下,和需求工程师沟通后再合入。

 

3、前方故障,APN参数错误导致彩信无法发送

故障描述:彩信无法发送,但可以成功接收

故障分析APN文件参数配置错误,注意检查彩信涉及的相关端口配置

mmsport,mmsproxy是否正确

代码修改:与需求工程师核对apn需求,若不确定参数正确与否,可请前方测试人员在局方网络下使用对比机对比,参考其apn配置,进行修改。

 

4、前方故障,APN参数Authentication前方实测与需求不符

故障描述:前方测试,APN参数中authtype项实际为PAP or CHAP,而需求为Authentication:normal

故障分析:当需求中存在签权项Authentication: normal时,若无用户名和密码参数,该鉴权是不需要的,APN配置中可以没有该项;当配置文件中authype为空时,代码中默认会将其设置为PAP or CHAP

代码修改Authentication参数值在需求文件中写为 normal,且无用户名和密码参数,则在APN配置文件中不写该项,代码中会默认设置为PAP or CHAP,不做为故障处理。

5、定制需求,漫游时,仍使用原卡MCC/MNC匹配的APN参数

故障描述:当设备漫游到其它网络时,仍然使用卡中原MNC/MCC对应的APN设置

   故障分析APN列表中的APN参数是根据当前网络提供商的MCC/MNCAPN配置表

   中匹配获得的。Operator numeric值中前三位为MCC(国家码),接着的三位为MNC(网

   络码)。一般当设备漫游时,opeartor numeric为当前网络提供商的值,而该需求要求使

   用原卡的MCC/MNCAPN配置,则需要在读取operator numeric处做相应的修改(参

   7x27GB项目宏ZTE_RLNC)。

代码修改SIMRecords.java文件中,一般情况下,operator 是由PROPERTY_ICC_OPERATOR_NUMBERIC定义;而此处定义为numeric SystemProperties.get(gsm.operator.numeric.home)

 

    

   createAllApnList()中,读取operator

   

 

根据numeric.home进行APN匹配,完成APN装载。

 

6、前方故障,无法自动激活APN列表中的默认APN选项

故障描述:首次开机后,APN列表正常显示,但无法自动激活默认APN;手动激活后,再次开机则可正常激活。

故障分析:该项目APN需求中,有两组MCC/MNC号相同的APN配置,需要通过spn参数进行区别。通过匹配卡中读出的spn参数和APN配置文件中的spn进行默认APN的选择。而出错项目中,需求spn参数与实际不符,导致无法正常匹配,默认APN无法激活。

代码修改:请前方测试人员提供日志,确认正确的spn参数,修改APN配置文件。  

目前代码增加了根据spn值进行APN匹配的功能,类似APN,将从卡中读取的spn保存在PREFERSPN_URI.

 

 

 

createAllApnList()代码中,若mSelectSpn getPreferredSpn(),若spn不为空,则和operator作为selection,在Telephony.Carriers.CONTENT_URI中定位,选择适当的Apn参数加载到allApns中。

接着在buildWaitingApns()中,将卡中读出的spn参数值和APN配置表中读出的spn参数值进行比较,匹配spn相同的Apn配置作为waitingApn

 

 

 

7、定制需求,APN子网过滤功能

故障描述:当一张卡有多组APN时,除了用SPN区分外,需求要求通过子网(subnet)来区分,实现APN的子网过滤。

故障分析:从卡中读取子网号码:IMSI MCC MNC +子网码 +用户码,将APN配置文件中的SPN参数项用子网码来替代。通过匹配卡中的子网码和APN配置文件的子网码参数,区分不同的APN选项。

代码修改:

SIMRecord.java中读取subnet值,并设置接口property名字为gsm.operator.numeric.subnet

 

 从卡上读取了subnet信息了后,在GsmDataConnectionTracker.java中的buildWaitingApn()中,进行subnet匹配,选取APN添加到APN列表中。

 

 

8、前方故障,在丢失pdp后无法自动恢复,必须手动关闭再打开数据业务后才能恢复。 

故障描述:在P743VV项目中,接到外籍投诉,手机上网状态,当转移到信号较弱的地方,会失去数据链接,如果回到信号较强的地方后,无法自动回复数据链接,必须手动关闭再打开才能恢复。

故障分析:该项目在国内虽然没有复现,但是外籍复现此故障的概率较高,分析日志,发现在丢失后没有自动进行重新连接。

代码修改:分析日志,出现这句话:“onDataSetupComplete: Not all permanent failures, retry,使执行这句话的操作失效,在if中添加宏控制

  修改代码:

https://10.67.129.15/7x27-Gingerbread/develop/app/frameworks/base/telephony/java/com/android/internal/telephony/gsm

GsmDataConnectionTracker.java中:

 

9、数据连接图标显示有误

   故障描述ZTE-C N766维护项目_印度SSTL 测试使用过程中,启用数据业务,待机不显示数据业务图标

   解决方法:在使能数据连接时,StatusBarPolicy(Context context) 里面监听器PhoneStateListener.LISTEN_DATA_CONNECTION_STATE会获得这个参数并上传,图标显示。

跟踪了代码,打了LOG,编译了framwork.发现在框架层Phonestatelistener.java里面走到了case LISTEN_DATA_CONNECTION_STATE,这个函数onDataConnectionStateChanged(int state, int networkType)也被调用,LISTEN_DATA_CONNECTION_STATE也被赋值。

内容概要:本文围绕含虚拟惯量阻尼的大功率并网逆变器虚拟同步发电机(VSG)控制策略展开系统性研究,旨在提升大功率并网逆变器在复杂电网环境下的运行稳定性与动态响应能力。通过引入虚拟惯量与虚拟阻尼控制环节,赋予逆变器类似传统同步发电机的惯性与阻尼特性,从而有效增强其对频率波动的抑制能力和对有功、无功功率扰动的适应性。研究基于Simulink平台构建了完整的VSG控制系统仿真模型,集成了有功-频率(P-f)与无功-电压(Q-U)双下垂控制、虚拟惯量阻尼补偿、功率解耦控制及并网电流反馈等核心模块,并在负载突变、电网电压波动等多种工况下进行了仿真验证,充分展示了该控制策略在改善系统暂态性能、抑制频率振荡和提升并网鲁棒性方面的优越性。; 适合人群:具备电力电子、自动控制理论及新能源发电系统相关基础知识的研究生、科研人员,以及从事并网逆变器、构网型变流器等产品研发的工程技术人员。; 使用场景及目标:①深入探究虚拟同步发电机(VSG)技术在大功率并网逆变器中的应用原理与实现方法;②掌握虚拟惯量与虚拟阻尼的物理意义、数学建模及其对电力系统稳定性的影响机制;③通过Simulink仿真手段验证VSG控制策略在电网扰动条件下的动态性能与抗干扰能力;④为构网型逆变器(Grid-Forming Inverter)的关键技术研发与工程实践提供理论依据和仿真支持。; 阅读建议:建议读者结合同步发电机基本运行原理与现代电力电子控制技术背景进行学习,重点理解VSG控制架构中各功能模块的协同工作机制与关键参数的整定方法,并推荐动手复现文中所述的Simulink仿真模型,以深入掌握控制逻辑设计与系统动态响应特性之间的内在联系。
内容概要 本资源是一套完整可运行的 Qt Widgets 批量图片压缩桌面工具源码,基于 Qt5/C++ 从零开发,专为初学者设计,分步实现图片批量处理全套功能。工具支持多选单张图片、直接读取整个文件夹内所有 JPG/PNG 图像,可自定义输出图片分辨率、调节 JPG0~100 区间压缩质量,自带锁定宽高比防拉伸变形功能;批量处理完成后自动统计每张图片压缩前后文件体积,计算整体压缩缩小比例,直观展示压缩效果。 适用人群 Qt/C++ 零基础初学者,学习 QImage 图像绘图、文件目录遍历、UI 交互开发; 需要本地批量处理图片的办公、设计、自媒体从业者; 想要学习图片缩放、JPG 压缩、本地文件 IO、进度条交互的开发学习者。 使用场景 自媒体批量压缩配图,降低图片体积节省上传流量; 摄影、设计批量统一图片尺寸,批量轻量化相册图片; 程序开发学习:QFileDialog 文件选择、QDir 文件夹遍历、QImage 缩放保存、QSlider 参数联动、批量循环界面防卡顿、文件大小格式化转换全套 Qt 图像开发实战案例。 工具核心功能清单 双模式导入图片:手动多选单张图片 / 一键读取整个文件夹全部图片; 自定义输出宽高分辨率,支持锁定原始宽高比,避免图片拉伸变形; 滑块调节 JPG 压缩质量 0~100,平衡图片清晰度与文件占用大小; 自定义输出保存目录,批量生成压缩后的图片文件; 实时进度条展示处理进度,循环中刷新界面,程序不会假死卡顿; 自动统计每张图片压缩前后体积,换算 KB/MB 直观展示; 批量完成弹窗汇总:图片总数、成功数量、单张大小对比、整体压缩节省间比例; 完整模块化代码,功能拆分清晰,每段代码附带详细注释,新手可分步拆解学习。 其他说明 开发环境:Qt Creator + Qt5.15 MSVC,Windows 平台可直接编译运行; 源码结构清晰,功能
内容概要:本文围绕基于瞬态三角哈里斯鹰算法(TTHHO)实现多无人机协同集群在三维间中的避障路径规划展开研究,提出一种以最低综合成本为目标的优化模型,综合考量路径长度、飞行高度、环境威胁等级及航段转弯角度等因素,有效提升路径的安全性与飞行效率。研究采用Matlab平台完成算法设计与仿真实验,验证了TTHHO算法在复杂动态环境下为多无人机系统规划出高质量、避障能力强的协同飞行路径的能力,展现了其在全局搜索能力和收敛性能方面的优势。该方法属于智能优化算法在无人系统自主导航领域的创新应用,具备较强的科研参考价值与工程仿真意义。; 适合人群:具备一定智能优化算法理论基础和Matlab编程能力,从事无人机路径规划、群体智能、自主导航系统研究的研究生、科研人员及自动化、航航天领域的工程技术人员。; 使用场景及目标:①应用于多无人机协同执行侦察、巡检、救援等任务中的三维航迹规划与动态障碍规避;②为哈里斯鹰算法(HHO)及其改进型(如TTHHO)的研究提供可复现的实现案例,支持与其他智能算法(如GWO、PSO、SCA等)进行性能对比分析;③服务于相关科研项目的仿真验证、学术论文撰写及路径规划模块的原型开发。; 阅读建议:建议结合提供的Matlab代码深入剖析算法实现流程,重点关注目标函数的构建逻辑、约束条件的处理机制以及瞬态三角策略对种群多样性和收敛速度的影响,并可通过调整环境参数、障碍物分布或引入不同威胁模型进一步测试算法鲁棒性与适应性。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值