【问题标题】:Android connection detection not working in Android Studio 2.2.1. What has gone wrong?Android 连接检测在 Android Studio 2.2.1 中不起作用。出了什么问题?
【发布时间】:2016-10-19 06:38:47
【问题描述】:

之前我用来验证 Internet 连接并相应地显示数据。如果它连接到互联网,我曾经从服务器加载数据,如果没有互联网连接,我曾经加载离线数据。但是从 Android Studio 2.2.1 开始,这似乎不起作用。我使用的代码是:

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

public class ConnectionDetector {

Context context;

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

     public boolean isConnected(){
    ConnectivityManager connectivity = (ConnectivityManager)      context.getSystemService(Service.CONNECTIVITY_SERVICE);

    if(connectivity!=null){
        NetworkInfo info = connectivity.getActiveNetworkInfo();

        if(info!=null){
            if(info.getState()== NetworkInfo.State.CONNECTED){
                return  true;
            }
        }

    }
    return false;
}

我会创建这个类的新对象:

   cd = new ConnectionDetector(this);

然后使用:

  if(cd.isConnected()){
  -----------
  ---------
  }else {
  ------
  ---
  }

但这在 2.2.1 中不起作用 需要进行哪些更改才能使其在 2.2.1 中工作? 我不是编程专家。

【问题讨论】:

  • 希望您在 Manifest File 中添加了权限。
  • 是的,添加了清单。我想在 2.2.1 版本中有些东西。现在 Android Studio 已经给出了新的更新 2.2.2 。我想他们现在修好了。

标签: android android-studio internet-connection android-internet


【解决方案1】:

请将此用于设备已连接或未连接。

 public class ConnectivityDetector {
    public static boolean isConnectingToInternet(Context context) {
        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;
    }}

你可以这样检查:

if (ConnectivityDetector.isConnectingToInternet(ChangePasswordActivity.this)) {
                //Your Code when connected.
            } else {
                Toast.makeText(MainActivity.this, "Please check your Internet connection.", Toast.LENGTH_SHORT).show();
            }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-30
    • 2016-12-29
    • 2019-11-29
    • 1970-01-01
    • 1970-01-01
    • 2020-01-11
    • 2020-05-10
    相关资源
    最近更新 更多