如何以编程方式处理WiFi到移动网络交换机?

Bal*_*ake 4 networking android wifi 3g

现在,我正在使用适用于WiFi的应用程序,但是当我要去移动提供商网络时,我的应用程序无法正常工作.我维护了一个检查网络的后台服务,但是我没有得到如何处理移动和移动到WiFi的网络交换机WiFi?我没有得到如何处理WiFi到移动网络交换机,因为已启用WiFi并且我不在WiFi覆盖范围内; 在这种情况下,我希望自动切换到移动网络,反之亦然.我的方法如下,不起作用:

String networkStatus = "disconnected";
            int netType = 0;
            try{
            ConnectivityManager connectivityManager =  (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
            if(connectivityManager != null ){
                    NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();

                    if(networkInfo != null){
                        netType = networkInfo.getType();
                        Log.d("Log", "connetion is available");
                    }else {
                        Log.d("Log", "connetion is  not available");
                        return networkStatus;
                    }

                //  if(networkInfo.isAvailable()){  // Old one
if(networkInfo.isAvailable() && networkInfo.isConnected()){  // New change added here
                        if(netType == ConnectivityManager.TYPE_WIFI)
                            {}
                        else if(netType == ConnectivityManager.TYPE_MOBILE )
                            {}
                            }
                        }
                    }catch(Exception e){
            Log.d("Log", "checkNetworkConnection" + e.toString());
            return networkStatus;
        }
Run Code Online (Sandbox Code Playgroud)

我已经阅读了许多帖子,听到仍然没有想到.任何人都可以给我任何想法或网址,我可以在哪里实现相同的方法?

提前致谢.

Bal*_*ake 6

我得到了解决方案:

String networkStatus = "disconnected";
            int netType = 0;
            try{
            ConnectivityManager connectivityManager =  (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
            if(connectivityManager != null ){
                    NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();

                    if(networkInfo != null){
                        netType = networkInfo.getType();
                        Log.d("Log", "connetion is available");
                    }else {
                        Log.d("Log", "connetion is  not available");
                        return networkStatus;
                    }

                //  if(networkInfo.isAvailable()){  // Old one
if(networkInfo.isAvailable() && networkInfo.isConnected()){  // New change added here
                        if(netType == ConnectivityManager.TYPE_WIFI)
                            {}
                        else if(netType == ConnectivityManager.TYPE_MOBILE )
                            {}
                            }
                        }
                    }catch(Exception e){
            Log.d("Log", "checkNetworkConnection" + e.toString());
            return networkStatus;
        }
Run Code Online (Sandbox Code Playgroud)