• «
  • 1
  • 2
  • »
  • Pages: 1/2     Go
主题 : 关于3g上网的问题 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 42212
精华: 0
发帖: 42
金钱: 210 两
威望: 42 点
综合积分: 84 分
注册时间: 2011-04-06
最后登录: 2012-03-25
楼主  发表于: 2011-04-15 10:41

 关于3g上网的问题

咨询大虾:mini6410的开发板,android2.3.2系统,现在用华为e1750来上网,每次开就都是通过友善自带的3g-diap-up连接上网,怎么样可以开机自动连接呢?
级别: 荣誉会员
UID: 34761
精华: 0
发帖: 1348
金钱: 6835 两
威望: 1367 点
综合积分: 2696 分
注册时间: 2010-12-21
最后登录: 2017-06-02
1楼  发表于: 2011-04-15 15:00
华为E1750在Mini6410和Tiny6410通过命令行拨号的方法是,在终端上执行以下命令:
# 3g-ppp /system/etc/3g-modem/12d1.1446.12d1.1001
# call-ppp wcdma

执行以上命令后,就会在后台进行拨号了,然后进入目录/var/run/,查看是否产出文件 ppp0-ok,如果有,则表示已拨号成功,ppp0-ok文件内会存储IP地址和DNS。

要断开网终,kill -9 pppd进程ID  即可。

------------------

BTW, 要开机自动执行以上步骤,则最简单的方法是定制ANDROID源代码,用C编写一个service调用上面的命令,然后将该service添加到 init.rc 中即可开机自动运行了。
级别: 新手上路
UID: 42212
精华: 0
发帖: 42
金钱: 210 两
威望: 42 点
综合积分: 84 分
注册时间: 2011-04-06
最后登录: 2012-03-25
2楼  发表于: 2011-04-15 15:20

 回 1楼(hacker) 的帖子

这个c的service有没有可能用ndk来build,直接在项目里调用?想开app的时候,马上调用这个c的service来启动连接?
级别: 荣誉会员
UID: 34761
精华: 0
发帖: 1348
金钱: 6835 两
威望: 1367 点
综合积分: 2696 分
注册时间: 2010-12-21
最后登录: 2017-06-02
3楼  发表于: 2011-04-15 16:17
不需要NDK,直接在ANDROID源代码目录中创建程序目录即可,可参考
handware/ril/rild, 它就是一个service,

上层界面也可以通过 local socket 的方式与这个service进行通讯
级别: 新手上路
UID: 42212
精华: 0
发帖: 42
金钱: 210 两
威望: 42 点
综合积分: 84 分
注册时间: 2011-04-06
最后登录: 2012-03-25
4楼  发表于: 2011-04-15 16:56

 回 3楼(hacker) 的帖子

这样是不是重新bulid过整个android的源码,之后重新烧mini6410?
现在想不要改源码,重新烧,想直接通过app层面来解决可以吗?有没有可能自己写一个类似友善自带的3g-diap-up这个app,来连接?只不过把手动的,改成自动的?不知道3g-diap-up这个app是怎么call底层的这些服务的?
级别: 荣誉会员
UID: 34761
精华: 0
发帖: 1348
金钱: 6835 两
威望: 1367 点
综合积分: 2696 分
注册时间: 2010-12-21
最后登录: 2017-06-02
5楼  发表于: 2011-04-15 18:01
不想改源码,可以用NDK,编写JNI库的方式来进行
级别: 新手上路
UID: 42212
精华: 0
发帖: 42
金钱: 210 两
威望: 42 点
综合积分: 84 分
注册时间: 2011-04-06
最后登录: 2012-03-25
6楼  发表于: 2011-04-15 18:14

 回 5楼(hacker) 的帖子

谢谢~!
再请问下,C有什么函数可以调用执行你上面提到的命令呢?
# 3g-ppp /system/etc/3g-modem/12d1.1446.12d1.1001
# call-ppp wcdma

是不是编写了C的函数之后,用ndk编译得到jni库,就可以在android project里面调用了?
级别: 荣誉会员
UID: 34761
精华: 0
发帖: 1348
金钱: 6835 两
威望: 1367 点
综合积分: 2696 分
注册时间: 2010-12-21
最后登录: 2017-06-02
7楼  发表于: 2011-04-15 23:22
是的,
用LINUX的system函数可以执行命令
级别: 新手上路
UID: 42212
精华: 0
发帖: 42
金钱: 210 两
威望: 42 点
综合积分: 84 分
注册时间: 2011-04-06
最后登录: 2012-03-25
8楼  发表于: 2011-06-16 12:54
翻旧帖出来啦,继续请教hacker:

# 3g-ppp /system/etc/3g-modem/12d1.1446.12d1.1001
# call-ppp wcdma

这两段指令,用adb shell连接mini6410,之后执行没问题。

我用jni写了一个c函数,在app启动后的onCreate里面调用这个函数,函数的主体是这样的:

{
        int r = system("cd /system/bin/");
        LOGD("aaaaa cd called result = %d",r);
        
        r = system("3g-ppp /system/etc/3g-modem/12d1.1446.12d1.1001");
        LOGD("33333 3g-ppp called result = %d",r);
        
        r = system("call-ppp wcdma");
        LOGD("44444 call-ppp called result = %d",r);
}

三个system函数,执行返回的都是0,网络也没有连接上,不知道是什么原因,请教~
级别: 新手上路
UID: 42212
精华: 0
发帖: 42
金钱: 210 两
威望: 42 点
综合积分: 84 分
注册时间: 2011-04-06
最后登录: 2012-03-25
9楼  发表于: 2011-06-17 10:28
自己顶上去,继续请教高人,大家可以一起讨论下~
  • «
  • 1
  • 2
  • »
  • Pages: 1/2     Go