主题 : pppd拨号成功,代码里如何断开网络 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 12415
精华: 0
发帖: 34
金钱: 170 两
威望: 34 点
综合积分: 68 分
注册时间: 2010-01-06
最后登录: 2014-03-12
楼主  发表于: 2013-08-13 11:53

 pppd拨号成功,代码里如何断开网络

pppd通过服务方式启动,拨号成功

ril 收到 RIL_REQUEST_DEACTIVATE_DATA_CALL 信号后,如何断开网络?

在命令行上通过killall pppd,可以正常断开

但在代码里,system("killall pppd"),无法删除进程,这个应该是权限问题导致的~~~

现在想问问大家是怎么做的,怎么来杀掉pppd进程,断网~~~
级别: 新手上路
UID: 12415
精华: 0
发帖: 34
金钱: 170 两
威望: 34 点
综合积分: 68 分
注册时间: 2010-01-06
最后登录: 2014-03-12
1楼  发表于: 2013-08-13 11:56
在RIL_REQUEST_DEACTIVATE_DATA_CALL 处理函数时,发AT+CGACT=0,可以断网
但会有错误提示,而且之后再也无法拨号了~~~

以下是正常的杀进程,断网log
I/pppd    (  666): Serial connection established.
D/pppd    (  666): using channel 1
I/pppd    (  666): Using interface ppp0
I/pppd    (  666): Connect: ppp0 <--> /dev/gsmtty2
D/pppd    (  666): No auth is possible
I/pppd    (  666): local  IP address 10.117.36.137
I/pppd    (  666): remote IP address 192.168.254.254
I/pppd    (  666): primary   DNS address 211.138.151.161
I/pppd    (  666): secondary DNS address 211.138.156.66
I/pppd    (  666): Terminating on signal 15
I/pppd    (  666): Connect time 1900311.4 minutes.
I/pppd    (  666): Sent 2169 bytes, received 825 bytes.
I/pppd    (  666): Connection terminated.
I/pppd    (  666): Serial link disconnected.
I/pppd    (  754): pppd exited with 5
级别: 新手上路
UID: 12415
精华: 0
发帖: 34
金钱: 170 两
威望: 34 点
综合积分: 68 分
注册时间: 2010-01-06
最后登录: 2014-03-12
2楼  发表于: 2013-08-13 12:00
通过setprop ctl.stop call-pppd,可以杀掉进程
但pppd没有收到 SIGTERM 信号
再次setprop ctl.start call-pppd,拨号失败
E/pppd    (  800): Connect script failed
I/pppd    (  803): pppd exited with 8
级别: 荣誉会员
UID: 34761
精华: 0
发帖: 1348
金钱: 6835 两
威望: 1367 点
综合积分: 2696 分
注册时间: 2010-12-21
最后登录: 2017-06-02
3楼  发表于: 2013-08-13 13:02
这玩意是比较麻烦,关注一下
级别: 新手上路
UID: 12415
精华: 0
发帖: 34
金钱: 170 两
威望: 34 点
综合积分: 68 分
注册时间: 2010-01-06
最后登录: 2014-03-12
4楼  发表于: 2013-08-13 15:38
急!!!在线等~~~