//判断网络是否联网,连得是无网络的wifi也会返回true public 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("网络异常,请检查网络设置"); }
android 判断手机是否已联网
最新推荐文章于 2024-01-06 14:21:44 发布