网上找了好久,好多网络用的ping方法去检测网络是否可以使用。当不知道怎么回事,在自己的程序里面,不管网络是否可以使用,返回值都是2。
在这里想问问,怎么解决这个问题哈!谢谢!!
开一个socket,connect一下
可以看下我的博客这篇文章,不但可以检测是否联网,还可以判断是3G网络还是wifi,有点儿早了,不能检测4G网络
Android判断设备网络连接状态,并判断连接方式
其实直接http打开一个常用网址,比如百度或者QQ,是比较简单的检查方法
直接获取当然ip也是个办法
在手机安装一个网络调试的应用,应用会有ping
,nslookup
等功能的。
public class CheckNetwork {
// 判断网络设置,如果没有网络,进入网络开启页面
public static void checkNetwork(final Context content) {
if (!isNetWork(content)) {
TextView text = new TextView(content);
text.setText("请开启GPRS或WIFI网络连接");
new AlertDialog.Builder(content)
.setTitle("网络状态提示")
.setPositiveButton("确定",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
content.startActivity(new Intent(
Settings.ACTION_WIRELESS_SETTINGS));
}
}).create().show();
}
}
// 判断网络是否连接
public static Boolean isNetWork(Context context) {
// 获得网络状态管理器
ConnectivityManager conn = (ConnectivityManager) context
.getSystemService(context.CONNECTIVITY_SERVICE);
if (conn == null) {
return false;
} else {
NetworkInfo netinfo[] = conn.getAllNetworkInfo();
if (netinfo != null) {
for (NetworkInfo net : netinfo) {
if (net.getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
}
}
return false;
}
}