如何访问Android中的Muliple网络接口(WiFi和移动数据)

时间:2018-04-18 07:52:38

标签: android android-connectivitymanager

好的,所以我的问题可能是偏离主题但我真的没有发现任何有用的内容在我的应用程序中同时使用网络接口是简单的图像上传到服务器使用开放网络以获得更好的速度。我们可以使用两者通过java编程的网络? 我找到了这段代码片段,但它只返回连接状态。

 ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
            Network etherNetwork = null;
            for (Network network : connectivityManager.getAllNetworks()) {
                NetworkInfo networkInfo = connectivityManager.getNetworkInfo(network);
                if (networkInfo.getType() == ConnectivityManager.TYPE_ETHERNET) {
                    etherNetwork = network;
                }
            }
            Network boundNetwork = connectivityManager.getBoundNetworkForProcess();
            if (boundNetwork != null) {
                NetworkInfo boundNetworkInfo = connectivityManager.getNetworkInfo(boundNetwork);
                if (boundNetworkInfo.getType() != ConnectivityManager.TYPE_ETHERNET) {
                    if (etherNetwork != null) {
                        connectivityManager.bindProcessToNetwork(etherNetwork);
                    }
                }
            }

2 个答案:

答案 0 :(得分:0)

据我所知,这是不可能的。

尽管如此:

  • MPTCP存在,您可能会发现支持它的roms,但它不是开箱即用的。
  • Speedify声称能够做到这一点,但由于它不需要root,我认为它只是巧妙地使用VPN连接和一种负载平衡技巧连接类型。

基本上,为了真正激活2种连接类型,您需要修改内核,以便可以同时使用两个网络接口。

答案 1 :(得分:0)

如果有帮助,您可以按照我在此应用中使用的方法进行操作

https://github.com/yschimke/OkHttpAndroidApp/

在连接之前,您可以将每个套接字自己绑定到特定的网络接口。每个单独的套接字都必须位于单个网络上,但是您可以同时使用两者。

https://github.com/yschimke/OkHttpAndroidApp/blob/master/android/app/src/main/java/com/okhttpandroidapp/factory/AndroidNetworkManager.kt#L123