手机问题点整理和总结

本文记录手机开发过程中遇到的问题点和解决方法,方便自己查阅。
(持续更新…)


5.手机插 CMCC 4G 卡,网络模式设置 2G only, 关机后插 CTC 卡,开机发现信号栏显示无服务。

插移动卡设置 2G only 模式时,RIL 下发给 cp 的 prefNetworkType 仅仅包含 gsm ,因此重新开机后,手机没有上报 cdma 相关网络信息给ap, 因此在设置 2G only 时, 应当设置 cdma | gsm prefNetworkTYpe 给 cp 端。

4.手机短信复制到 SIM(CTC 4G)卡, 到短信设置菜单,选择更多设置,文本信息,管理 SIM 卡信息,等待读出短信,显示两条刚刚复制的短信内容。

CTC 4G 卡是双模卡,由于手机读取短信息的文件路径一样,导致重复短信的出现,修改它读取的路径,应该读取的路径为 3F007FFF & 3F007F10.

3.双卡手机卡2插卡,加密后重新开机,进入加密模式,随便拨打一个紧急号码后,输入密码,启动手机进入到 Idle 界面,卡二显示无服务。

卡2 在 2G only 下,可以正常注册上网络。 卡2 在 4G/3G/2G 情况下,问题重现。经调查,问题只有在卡2 做了 crossmapping, 并且主栈在卡2的情况才会出现这个问题。从log上看,cp 端上报网络信息是正常的,只是把网络信息上报了RILD(卡1),ap ril 和 cp 的信息通道 match 错了。

加密模式下,拨打紧急电话的时候,会去激活卡,之后输入密码开机,会再次激活卡并返回错误,原因是卡2已经被另外一个session激活过,cp 端不允许多个 session 激活统一个app。

解密前,激活卡时的 session type 是根据一个系统属性(crossmapping主副栈属性),加密模式下,只能读取到默认值,所以导致 sesstion type 错误;解密后,根据 cp 端 rule, 卡不能被新的 session 再次激活,因此导致 ap bind cp 端错误。由此可知,系统属性值读不到导致这个问题的产生。

加密后,android系统所有的系统属性,都是被加密的,读到的都是默认值。所以此题基本是无解,最后,为了规避这个问题,只能在这种情况下,拨打紧急号码的时候,不去激活卡,在解密后,再去激活卡。

2.CMCC spec, cmcc为主卡的情况下,副卡应该只能上 2G only, 数据切换到卡2 的时候,信号栏显示3G。

手机这种情况下,副卡设置的网络模式是 CDMA | GSM | HRPD。因此DDS可以上到3G。针对这情况,增加判断条件,主卡是 CMCC 并且是移动定制,设置副卡 prefNetworkType 为 GSM | CDMA.

1.通过过程中,对方挂断电话,我方手机屏幕不亮(sometimes)

对方挂断电话,实际点亮屏幕是在 Call App;不亮是因为 Call App 没有收到 RIL 发出的 Disconnect 消息。从 Log 上看,RIL 的消息是已经发出去了,但此刻 AP 睡眠了,导致消息阻塞,没能及时发到 APP。AP 睡眠,确认最后释放 wakelock 是 RILJ。RILJ 发送消息和接受消息都会去申请 wakelock 和释放wakelock。刚刚好是在 [ RILJ ] < RIL_REQUEST_LAST_CALL_FAIL_CAUSE 后,释放 wakelock,AP 立刻进入睡眠。而且这个 Disconnect 消息发到哪里 AP 才进入睡眠是不定的,故不能在GsmCallTracker/Gsmconnection 加延时,只能在 RILJ 释放 wakelock 之前加个延时(200——300ms问题不重现),以确保AP不睡眠,让消息能够成功发送到 Call App。

X.协助分析

实际上,很多时候是协助分析,特别是类似于搜不到信号,丢失信号,断话等,这种情况就是需要我们查看 ril 接受到 CP 上报的信号状态和断话原因。大多数情况下,定位到点后都是转给 CP 的同事去分析。

  • 对于网络状态问题,首先,最直观的是直接查看Telephony收到的网络状态消息。
//GsmServiceStateTracker -> poll servicestate done
GsmSST  : Poll ServiceState done:  oldSS=[0 0 home CHN-UNICOM UNICOM 46001  LTE LTE CSS not supported -1 -1 RoamInd=-1 DefRoamInd=-1 EmergOnly=false] newSS=[0 0 home CHN-UNICOM UNICOM 46001  UMTS HSPA CSS not supported -1 -1 RoamInd=-1 DefRoamInd=-1 EmergOnly=false] oldMaxDataCalls=4 mNewMaxDataCalls=4 oldReasonDataDenied=-1 mNewReasonDataDenied=-1
对于Cdma,则查看CdmaSST:CdmaServiceStateTracker –> pollStateDone
  • 其次,查看QMI消息确认是否都搜到网络,是否和 GSMSST/CDMASST 的网络状态相匹配。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值