在安卓系统上同时启用WiFi和3G网络接口

6
是否可以同时使用3G和Wifi连接,并通过两个接口同时传输呢?但是,我注意到当Wifi连接时,3G连接会断开。实际上,似乎路由表在接口的开启/关闭时进行更新。
  • UMTS路由表打开/Wifi打开

    a.b.c.1 dev rmnet0 a.b.c.0/24 dev rmnet0 src a.b.c.2 default via a.b.c.1 dev rmnet0

  • Wifi路由表打开/UMTS打开

    192.168.1.0/24 dev eth0 src 192.168.1.147 default via 192.168.1.1 dev eth0

  • 打开Wifi后,我运行了以下命令:

    ip link set rmnet0 up

    ip route

    192.168.1.0/24 dev eth0 src 192.168.1.147 a.b.c.0/24 dev rmnet0 src a.b.c.2 default via 192.168.1.1 dev eth0

当我看到这些时,我认为我已经成功地将两个设备都打开并运行。然而,事实并非如此。当我ping公共互联网地址(a.b.c.3)时,在情况1)和2)一切正常。在情况3)中,我没有得到回答。
安卓究竟将只有一个设备可用的设置放在哪里呢?我该如何使两个接口都处于打开和可用状态,就像在普通的Linux框中一样?
P.S.:我已经尝试了[1]中的解决方案,在Wifi连接时启用数据连接,但无法实现。
[1]如何在Android 2.3上启用数据连接 [2]如何在安卓上屏蔽电话 -->使用ITelephony来获取telephonyService.enableDataConnectivity();但是我遇到了异常。

3
也许这不是你想听到的,但我认为这会相当复杂。 我所见过的所有实现基本上都使用 the 活动连接来发送数据(the 意思是只有一个,具体取决于哪个优先级更高)。 你是否有非常重要的原因需要同时通过两者进行传输?你可以选择先通过其中一个进行传输,然后再通过另一个进行传输吗? - blindstuff
我是一名研究人员,为了我正在开发的通信系统,我需要同时激活两个接口。我一直在阅读相关资料,似乎谷歌已经删除了使用ITelephony接口[1](http://code.google.com/p/android/issues/detail?id=15031)的选项,这似乎是唯一的方法。但是,我想知道是否可以通过开发本地的C代码并在控制台上运行来实现。任何帮助都将不胜感激。 - jlanza
另一个要点是,当前的Android版本支持Tethering。在这种情况下,两个接口都处于运行状态。因此,这可能是定制Android以启用两个接口连接到互联网的起点。 - jlanza
你尝试过ConnectivityManager.requestRouteToHost吗?我一直想知道它是否可以解决这种问题,但至今我还没有需要尝试... - Philip Pearl
了解“Connectify dispatch”。这是一款类似的PC软件。对于Android,我猜您需要在手机上创建一个虚拟路由器,它位于Wi-Fi和移动数据接口之上。最好是在核心Android中实现,而不是作为应用程序。 - GP cyborg
1个回答

0

这是不可能的...除非你愿意付出很大的努力来使它工作。你实际上是要求你的设备成为一个路由器。

要做到这一点,你需要找到一个程序(抱歉我现在想不起任何名字),它可以在普通的Linux发行版上完成这个任务。然后重新编译它以适应Android操作系统,并将其安装到本地系统中。

这个解释可能对你来说更有意义。如果你进入ADB shell并运行netcfg命令(或者使用ifconfig命令进行详细说明),你将看到设备的网络选项。你可以运行ifconfig命令来设置设备或更改其状态,但我认为你不能同时让多个设备路由数据到和从手机。

这是我最好的猜测...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接