2014-01-28 51 views
2

我想通过服务在我的项目的每个页面中监控互联网。我没有任何关于此的代码。我有方法如何检查互联网连接,但我想通过服务来实现它。通过Android中的服务进行互联网监控

  1. 这可能吗?如果是,请给我提供一些方法或逻辑。

在此先感谢

回答

1

我假设你要检查互联网连接在每一个你的活动,下面是它的代码。

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_NETWORK_STATE" /> 

那么你可以通过下面的代码检查互联网连接的任何活动,

if (!NetworkUtils.isNetworkConnected(getApplicationContext())) 
{ 
    // Internet is present 
} 
else 
{ 
    // Error msg 
} 
1

你也可以执行如下:

public boolean isInternetConnected() { 
    ConnectivityManager conMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
    boolean ret = true; 
    if (conMgr != null) { 
     NetworkInfo i = conMgr.getActiveNetworkInfo(); 

     if (i != null) { 
      if (!i.isConnected()) { 
       ret = false; 
      } 

      if (!i.isAvailable()) { 
       ret = false; 
      } 
     } 

     if (i == null) 
      ret = false; 
    } else 
     ret = false; 
    return ret; 
} 

,并检查就像在你的服务或AsynTask如下:

if(isInternetConnected()){ 
//add your logic 
}else{ 
//add your logic 
} 

注:添加所需的互联网permission到您manifest.xml文件