Android 通过 WiFi 路由下行数据,通过移动网络路由上行数据

标签 android network-programming wifi

Android 是否可以通过 WiFi 路由所有传入数据流量,并通过移动网络路由所有传出流量。

在stackoverflow上找到答案 How Wifi and Mobile Data both work simultaneously in android for OBD2 device .但它确实只为一台主机路由数据。

还有一个应用SuperDownload它使用 wifi 和移动网络来实现更快的下载速度。我正在尝试做这样的事情。

在 Android 中,WiFi 和移动网络不能同时工作。是否可以通过生根设备使其工作? (SuperDownload 需要 root)。

最佳答案

你要做的事情并不容易。

首先你必须保持两个网络接口(interface),这是可能的,但这是一个 hack,因为 Android 不支持它。为此,您必须打开

connectivityManager.startUsingNetworkFeature(ConnectivityManager.TYPE_MOBILE, "feature");

功能名称与您的硬件相关,应该是enableHIPRI。问题是在你打开界面后一段时间后它会关闭,因此你必须每 20-30 秒执行一次 http 请求以保持它。这样界面将保持打开状态。

路由需要添加静态路由

connectivityManager.requestRouteToHost(ConnectivityManager.TYPE_MOBILE_HIPRI, ipAddressInt);

其中 ipAddressInt 是您要在 3G 上连接的地址。通常路由是通过 WiFi 发送的,所以对于您的 GET(在 WiFi 上下载)没有问题,但是您应该添加一个用于上传的路由。

现在有两个问题,

  • 首先是这样在 3G 上 DNS 解析消失了,你可以在 IP 上工作,但你必须有一个静态 IP 的服务器,
  • 其次,我不确定它是否适用于特定端口(这是我目前唯一的想法...)。

当然你应该实现另一个保持接口(interface) Activity 的线程。

关于Android 通过 WiFi 路由下行数据,通过移动网络路由上行数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31397904/

相关文章:

android - 是否有关于在平板电脑上使用手势控制动画的教程/代码示例?

android - 饼图中心 - Android

java - Java RPC 服务器框架

c# - 创建 WiFi 应用程序

android - 带有多个切换按钮的 Recyclerview 在滚动时随机检查按钮

javascript - 当 Animated.View 有一个 Animated.ScrollView 作为 child 时,PanResponder 在 Android 上无法正常工作

linux - 通过 libnl 获取 Wi-Fi 信号强度?

C++访问url日志

c# - 我如何在 C# 中将文本加密为 wpa2 密码 (MasterKey)

android - Hostapd 显示 wlan0 : AP-ENABLED, 但 SSID 在设备中不可见