android 判断手机是否已联网

来源:互联网 发布:淘宝网小孩玩的真空沙 编辑:程序博客网 时间:2024/05/29 15:23
//判断网络是否联网,连得是无网络的wifi也会返回truepublic static boolean isNetWorkAvailable(){    ConnectivityManager manager = (ConnectivityManager) App.getInstance().getSystemService(Context.CONNECTIVITY_SERVICE);    if(manager.getActiveNetworkInfo()!=null){        return manager.getActiveNetworkInfo().isConnected();    }    return false;

}

上面那个方法只能判断有没有联网,我们不能知道是不是可以上网,如果连接的是无法上网的网络,你会发现网络请求也会成功,但返回的数据就不是服务器给你的数据了,而是一个html页面。

如果连接的是无法上网的网络,我们该怎么办呢?

网上我百度了一种方法是通过ping来判断的,怪我学的少,没看懂,用了一下,应用黑屏了。。

后来我自己研究了个办法,因为每次网络请求都会返回数据,所以直接用JSONObject格式化一下试试,成功了,就请求成功,失败,就网络异常。

方法如下:

try {    JSONObject object = new JSONObject(response);//这里需要判断一下,如果返回的不是json数据,那么应该是接口或者网络问题    callBack.onResult(response);} catch (JSONException e) {    ToastUtil.toastLong("网络异常,请检查网络设置");}

0 0