客户反馈说司机端掉线,每次正常的回答就是:
1. 检查手机的省电模式,需要关闭省电模式,或者把司机端加入白名单
2.检查手机的设置,里面的禁止后台运行,需要关闭,或者把司机端加入允许后台运行
这两步能解决多数手机掉线问题。但是仍然有代驾公司反馈说掉线。
最后没办法,只好让他告诉手机型号,并且买了一只手机; 测试发现,果然掉线。
手机型号:华为荣耀, 双卡双待
检查手机没有找到以上两个设置,根本没有省电模式,也没有禁止后台运行设置;唉,这个变态的手机。
最简单的解决办法:换个手机。
关键是客户说很多人都是这个手机,需要解决啊。
反复调试程序,发现是黑屏后,30分钟会掉线。
多么痛苦的测试啊,每次测试都需要至少等30分钟才能知道结果。
首先以为是手机休眠造成的,在程序里增加了“休眠唤醒”机制,有四个闹钟解决方法,都要测试,发现都不灵,都是一到30分钟,就自动掉线了。
无数次测试发现实际手机已经是唤醒的,没有休眠,进一步发现是网络断了,也就是说,黑屏后30分钟自动断网。
断网的话,那不管什么程序都无法上网,要掉线都得掉线。别以为就我的程序会掉线。
查了很久的互联网,发现很多人反馈这个问题,这个是华为手机的通病,华为手机为了省电,故意设计为黑屏后30分钟断网。 多么愚蠢的设计啊。 这个会导致使用微信,QQ的时候,如果黑屏30分钟,就无法收到信息。这样的手机竟然还能卖钱?希望华为的技术看到本文能加以改进。
知道原因后,解决办法有了:
感谢这篇文章作者 http://bbs.zhiyoo.com/thread-6723234-1-1.html
用re管理器打开system文件夹,下面的build.prop用编辑模式打开,找到ro.config.hw_power_saving=true,把true改成false就可以了。这一行的介绍#allow to tear down mobile data connection when device is idle就是指允许在手机空闲(锁屏)的时候断开手机网络连接。
怕有人不懂,再详细说一下:
1. 到安卓市场,下载root工具, 运行root工具,将手机root
2. 到安卓市场,下载安装"re管理器"
3. 运行"re管理器", 找到system文件夹,并且用可读写方式挂载, 找到build.prop这个文件,用编辑模式打开, 找到ro.config.hw_power_saving=true,把true改成false就可以了
4. 重启手机,再次运行司机端,经过测试,黑屏N小时都不会掉线了。
同样的解决办法针对小米手机也是有效的; 我猜想华为也是用的小米的内核。