通过Android中的服务进行Internet监控

时间:2014-01-28 09:36:21

标签: android

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

  1. 有可能吗?如果是,请提供一些方法或逻辑。
  2. 提前致谢

2 个答案:

答案 0 :(得分:1)

我假设您要在每个活动中检查INTERNET连接,以下是代码。

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

然后,您可以通过以下代码

检查任何活动中的INTERNET连接
if (!NetworkUtils.isNetworkConnected(getApplicationContext())) 
{
   // Internet is present
}
else
{
    // Error msg
}

答案 1 :(得分: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文件中