2011-08-26 35 views
2

現在,我正在使用適用於WiFi的應用程序,但是當我要移動提供商網絡時,我的應用程序無法正常工作。我一直維護一個後臺服務,檢查網絡,但我沒有得到如何處理網絡轉換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; 
     } 

我已經讀了很多帖子,聽到仍然沒有得到主意。任何人都可以給我任何想法或網址,我可以得到相同的方法來實現?

在此先感謝。

回答

5

我得到了解決:

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; 
     } 
相關問題