rk3288 android7.1.2 4g模块调试(五)

项目场景:

rk3288 android7.1.2 gm191模块调试


问题描述:

        gm191模块开机后自动拨号,开启gps定位功能,并同时使用ping命令访问百度,在一段时间后会出现4g模块断网,等待一点时间后,4g上网功能恢复。


原因分析:

        触发了framework 保活机制。这个保活机制就是在连上网后,send了数据包但是recv的数据包为0,就会累积send的数据包。当累积send的数据包大于10,就会触发recovery机制,第一次recovery只会列出当前网络状态,第二次就会断网重连。

        此问题是在定位功能与上网功能同时开启的时候才会出现,基本确定是模块问题,后与模块供应商沟通,并未找到好的结局办法。


解决方案:

临时解决方案:增加send包累计次数,可以大概率避免触发recovery机制

frameworks/opt/telephony/src/java/com/android/internal/telephony/dataconnection/DcTracker.java

@@ -137,7 +137,7 @@ public class DcTracker extends Handler {
     // 10 min. default polling interval when screen is off.
     private static final int POLL_NETSTAT_SCREEN_OFF_MILLIS = 1000*60*10;
     // Default sent packets without ack which triggers initial recovery steps
-    private static final int NUMBER_SENT_PACKETS_OF_HANG = 10;
+    private static final int NUMBER_SENT_PACKETS_OF_HANG = 200;
 
     // Default for the data stall alarm while non-aggressive stall detection
     private static final int DATA_STALL_ALARM_NON_AGGRESSIVE_DELAY_IN_MS_DEFAULT = 1000 * 60 * 6;

修改send包累计次数后,测试未出现过4g断网问题

你可能感兴趣的:(android,framework)