早些时候我曾经用来验证互联网连接并相应地显示数据。如果它连接到Internet我曾经从服务器加载数据,如果没有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中运行需要进行哪些更改? 我不是编程专家。
答案 0 :(得分:3)
请使用此设备已连接或未连接。
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();
}