2014-02-11 51 views
3

如何获得HTC One应用程序开发的Android互联网连接状态?如何获取android的互联网连接状态?

我是新开发的android开发人员,我将开发一个应用程序与互联网。所以我需要获得interent状态。任何帮助赞赏。

+0

http://stackoverflow.com/a/10617567/1659523检查此 –

回答

3

尝试这种方式和Read more

public static String getConnectivityStatusString(Context context) { 
    int conn = NetworkUtil.getConnectivityStatus(context); 
    String status = null; 
    if (conn == NetworkUtil.TYPE_WIFI) { 
     status = "Wifi enabled"; 
    } else if (conn == NetworkUtil.TYPE_MOBILE) { 
     status = "Mobile data enabled"; 
    } else if (conn == NetworkUtil.TYPE_NOT_CONNECTED) { 
     status = "Not connected to Internet"; 
    } 
    return status; 
} 

或其他简单的方式来实现任务

private boolean haveNetworkConnection() { 
boolean haveConnectedWifi = false; 
boolean haveConnectedMobile = false; 

ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
NetworkInfo[] netInfo = cm.getAllNetworkInfo(); 
for (NetworkInfo ni : netInfo) { 
    if (ni.getTypeName().equalsIgnoreCase("WIFI")) 
     if (ni.isConnected()) 
      haveConnectedWifi = true; 
    if (ni.getTypeName().equalsIgnoreCase("MOBILE")) 
     if (ni.isConnected()) 
      haveConnectedMobile = true; 
} 
return haveConnectedWifi || haveConnectedMobile; 

}

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

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

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

在您的Android清单。

0

您可以使用以下代码来获取连接状态。

public abstract class NetworkUtils 
{ 
    public static boolean isNetworkConnected(Context context) 
    { 
     ConnectivityManager connectivityManager = (ConnectivityManager) context 
       .getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo(); 
     return networkInfo != null && networkInfo.isConnected(); 
    } 
} 

您需要在AndroidManifest.xml中定义下列权限文件

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

现在,您可以拨打上面使用的代码下面几行你想要的任何活动方法,

if (!NetworkUtils.isNetworkConnected(getApplicationContext())) 
{ 
    // msg to display. 
} 
0

使用此代码:此代码将工作在所有Android版本中。

public static boolean isInternetOn(Context context) 
    { 
     boolean haveConnectedWifi = false; 
     boolean haveConnectedMobile = false; 

     ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo[] netInfo = cm.getAllNetworkInfo(); 
     for (NetworkInfo ni : netInfo) 
     { 
      if (ni.getTypeName().equalsIgnoreCase("WIFI")) 
       if (ni.isConnected()) 
        haveConnectedWifi = true; 
      if (ni.getTypeName().equalsIgnoreCase("MOBILE")) 
       if (ni.isConnected()) 
        haveConnectedMobile = true; 
     } 
     return haveConnectedWifi || haveConnectedMobile; 
    } 

如果互联网打开,它返回true,当互联网不可用时返回false。

-1

嗨使类ConnectionDetector如下

import android.content.Context; 
import android.net.ConnectivityManager; 
import android.net.NetworkInfo; 

public class ConnectionDetector { 

    private Context _context; 

    public ConnectionDetector(Context context){ 
     this._context = context; 
    } 

    public boolean isConnectingToInternet(){ 
     ConnectivityManager connectivity = (ConnectivityManager) _context.getSystemService(Context.CONNECTIVITY_SERVICE); 
      if (connectivity != null) 
      { 
       NetworkInfo[] info = connectivity.getAllNetworkInfo(); 
       if (info != null) 
        for (int i = 0; i < info.length; i++) 
         if (info[i].getState() == NetworkInfo.State.CONNECTED) 
         { 
          return true; 
         } 

      } 
      return false; 
    } 
} 

可以给出以下方式

ConnectionDetector detector= new ConnectionDetector(getApplicationContext()); 

Boolean isInternetPresent = detector.isConnectingToInternet(); // true or false 

使用这个类有这个布尔isInternetPresent您可以在开发继续进行。

if (isInternetPresent) { 
        // Internet Connection is Present 


       } else { 
        // Internet connection is not present 

       } 

支持这一切需要添加权限到您的manifest.xml

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
0
public static boolean isNetworkAvailable(Context context) 
{ 
    return ((ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo() != null; 
} 

public static boolean isNetworkAvailable(Context context) { 
    boolean outcome = false; 

    if (context != null) { 
    ConnectivityManager cm = (ConnectivityManager) context 
     .getSystemService(Context.CONNECTIVITY_SERVICE); 

    NetworkInfo[] networkInfos = cm.getAllNetworkInfo(); 

    for (NetworkInfo tempNetworkInfo : networkInfos) { 


     /** 
     * Can also check if the user is in roaming 
     */ 
     if (tempNetworkInfo.isConnected()) { 
     outcome = true; 
     break; 
     } 
    } 
    } 

    return outcome; 
} 

不要忘记添加到清单文件这一行:

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