您的位置:首页 > 理论基础 > 计算机网络

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

2015-11-24 18:37 666 查看
/**
* 校验网络,如果没有网络,返回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:有大神来解释一下呗)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: