【问题标题】:Enable simultaneously wifi and 3G interface on Android在 Android 上同时启用 wifi 和 3G 接口
【发布时间】:2012-03-05 05:33:08
【问题描述】:

是否可以同时启动并运行 3G 和 Wifi 连接?我想通过两个接口同时传输。

但是,我注意到当 Wifi 开启时,3G 正在下降。实际上,路由表似乎是在接口的 on/off 时更新的。

  1. 路由表 UMTS 开启/Wifi 开启

    a.b.c.1 开发 rmnet0 a.b.c.0/24 dev rmnet0 src a.b.c.2 默认通过 a.b.c.1 dev rmnet0

  2. 路由表 Wifi 开启/UMTS 开启

    192.168.1.0/24 开发 eth0 src 192.168.1.147 默认通过 192.168.1.1 dev eth0

  3. 打开 wifi 我已经跑了:

    ip link set rmnet0 up

    ip 路由

    192.168.1.0/24 开发 eth0 src 192.168.1.147 a.b.c.0/24 dev rmnet0 src a.b.c.2 默认通过 192.168.1.1 dev eth0

当我看到这一点时,我认为我已经设法让两个设备都启动并运行了。然而,这种情况并非如此。当我 ping 公共互联网地址 (a.b.c.3) 时,在 1) 和 2) 的情况下,一切顺利。情况 3) 我没有得到任何答复。

Android 到底在哪里设置了一次只能使用一台设备?如何让两个接口都启动并可用,就像在普通的 Linux 机器上一样?

P.S.:我尝试了[1]中的解决方案,在wifi打开时启用数据连接,没有办法。

[1]How to enable data connection on Android 2.3

[2] How to block calls in android --> 使用 ITelephony 获取 telephonyService.enableDataConnectivity();但我得到了一个例外。

【问题讨论】:

  • 这可能不是你想听到的,但我认为这会很复杂。我见过的每个实现都使用 活动连接来发送数据( 仅在一个中,具体取决于具有更高优先级的连接)。您想同时通过两者进行传输是否有一个非常重要的原因?你能不能选择先通过一个,然后另一个?
  • 我是一名研究人员,对于我正在开发的通信系统,我需要同时激活两个接口。我一直在阅读似乎谷歌已经删除了使用 ITelephony 界面1 的选项,这似乎是一种方式。但是我想知道是否可以通过在本机 C 中开发并在控制台上运行它来做到这一点。任何帮助都非常受欢迎。
  • 另一点。当前的 android 版本支持网络共享。最后,在这种情况下,两个接口都已启动并正在运行。然后,这可能是自定义 android 以使两个 iface 都连接到互联网的起点。
  • 您尝试过 ConnectivityManager.requestRouteToHost 吗?我一直想知道这是否能解决这类问题,但到目前为止我还不需要尝试......
  • 阅读“连接调度”。这是一个与此类似的PC软件。对于 Android,我猜你必须在手机上创建一个虚拟路由器,它位于 Wi-Fi 和移动数据接口之上。最好是核心android而不是APP

标签: android network-programming


【解决方案1】:

这是不可能的……除非你愿意竭尽全力让它发挥作用。您实际上是在要求您的设备成为路由器。

要做到这一点,您需要找到一个可以在普通 linux 发行版上完成此操作的程序(抱歉,目前不记得任何名称)。然后重新编译它以适应 Android 操作系统并安装到本机系统中。

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

这将是我最好的猜测......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-26
    • 1970-01-01
    • 1970-01-01
    • 2012-05-01
    • 1970-01-01
    相关资源
    最近更新 更多