从外部类/获取系统服务检查android连接

时间:2013-08-05 20:26:34

标签: android

我正在尝试检查非活动类的互联网连接。

我正在使用以下代码:

public boolean isNetworkAvailable() {
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo networkInfo = cm.getActiveNetworkInfo();        
    if (networkInfo != null && networkInfo.isConnected()) {
        return true;
    }
    return false;
}

但下面的代码行用红色加下划线:

getSystemService(Context.CONNECTIVITY_SERVICE)

我假设这是因为它无法获得systemService。我如何获得系统服务?

3 个答案:

答案 0 :(得分:5)

从您所在的Context传递Activity

public boolean isNetworkAvailable(Context c) {
ConnectivityManager cm = (ConnectivityManager) c.getSystemService(Context.CONNECTIVITY_SERVICE);

因此,如果来自Activity的人使用此类内容来传递Activity的{​​{1}}

Context

显然在创建了封闭类的实例

之后

答案 1 :(得分:0)

使用该活动的context.getSystemService(Context.CONNECTIVITY_SERVICE)是从上下文派生的,这就是为什么你可以在活动中使用getSystemService而没有上下文的原因

答案 2 :(得分:0)

使用此:-

CheckInternet checkInternet = new CheckInternet(this);
boolean connection = checkInternet.isNetworkConnected();

并像这样呼叫:-

index.js