android 检查网络是否可用,如果不可用弹出设置,让用户改变

 /**
* 校验网络,如果没有网络,返回true
*
* @return boolean
*/
@Override
public boolean hasInternetConnected() {
ConnectivityManager manager = (ConnectivityManager)context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (manager != null){
NetworkInfo info = manager.getActiveNetworkInfo();
if(info !=null && info.isConnectedOrConnecting() ){
return true;
}
} openWirelessSet();
return false;
}
/**
* 弹出框
*/
@Override
public void openWirelessSet() {
final AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("提示")
.setMessage("请检查您的网络连接")
.setPositiveButton("设置", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent = new Intent(
Settings.ACTION_WIRELESS_SETTINGS);
context.startActivity(intent);
}
})
.setNegativeButton("关闭", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builder.create().show();
}

上面这种方式是我自己用的可以的

/**
* 检验网络连接是否可用
*
* @return boolean
*/
@Override
public boolean validateInternet() {
ConnectivityManager manager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if(manager != null){ NetworkInfo[] info =manager.getAllNetworkInfo();
if (info != null){
for (NetworkInfo networkInfo : info){
if (networkInfo.getState() == NetworkInfo.State.CONNECTED);
return true;
}
}
} return false;
}

这种也看别人用过,不过今天自己测试了一下,自己明明把网络数据给关了,但返回的还是true,不知道为什么(PS:有大神来解释一下呗)

上一篇:HTML5 简单归纳 -- 前端知识 (一)


下一篇:vue开发记录--通用时间格式函数