Прямо сейчас у меня есть приложение, которое работает с Wi-Fi, но пока я собираюсь подключиться к сети мобильных провайдеров, мое приложение не работает. У меня есть одна фоновая служба, которая проверяет наличие сети, но я не понимаю, как управлять переключением сети с Wi-Fi на мобильные устройства и с мобильных устройств на Wi-Fi? Я не понимаю, как управлять переключением Wi-Fi на мобильную сеть, потому что Wi-Fi уже включен, и я не нахожусь в зоне покрытия Wi-Fi; в этой ситуации я хочу автоматически переключиться на мобильную сеть и наоборот. Мой подход заключается в следующем, который не работает:

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;
        }

Я уже прочитал много сообщений, но все еще не понял. Может ли кто-нибудь дать мне какую-либо идею или URL-адрес, где я могу реализовать тот же подход?

Заранее спасибо.

4
Balaji Khadake 26 Авг 2011 в 17:53

2 ответа

Лучший ответ

У меня есть решение:

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;
        }
6
Balaji Khadake 5 Сен 2011 в 10:08

http://thiranjith.wordpress.com/2011/03/31/how-to-monitor-network-connectivity-in-android/

Надеюсь, что это поможет вам..

-1
subair_a 2 Сен 2011 в 05:26