2012-10-10 47 views
0

我在寫一個需要使用互聯網的應用程序。一些代碼相關的位,我有如下:如何在Android應用程序中使用任何Internet連接(wifi,3g,4g等)?

<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 

private boolean isConnected() { 
    ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo netInfo = cm.getActiveNetworkInfo(); 

    if (netInfo != null && netInfo.isConnected()) { 
     // do stuff 
     return true; 
    } 
    else{ 
     // don't do stuff and display dialog instead 
     return false; 
    } 
} 

然而,我的應用程序似乎只有WiFi連接上工作。無論它如何連接到互聯網,我如何使它工作?

+0

您應該使用isConnectedOrConnecting()而不是isConnected() – Klaasvaak

+0

也。我從來不檢查用戶是否連接,當你想要做網絡的東西,並且用戶沒有連接它會拋出異常。 – Klaasvaak

回答

1

試試這個

public class NetWorkCheck{ 
    ConnectivityManager connectivityManager; 
    NetworkInfo wifiInfo, mobileInfo, lanInfo; 


    public Boolean checkNow(Context con){ 

     try{ 
      connectivityManager = (ConnectivityManager) con.getSystemService(Context.CONNECTIVITY_SERVICE); 
      wifiInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); 
      mobileInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); 


      if(wifiInfo.isConnected() || mobileInfo.isConnected()) 
      { 
       return true; 
      } 
     } 
     catch(Exception e){ 
      System.out.println("CheckConnectivity Exception: " + e.getMessage()); 
     } 

     return false; 
    } 
} 

,並在ü要測試活動連接編寫代碼

NetWorkCheck networkCheck = new NetWorkCheck(); 
boolean connection; 

connection = networkCheck.checkNow(UpdateVehicleDetails.this); 
       if (connection) { 
相關問題