android 判断手机是否已联网

//判断网络是否联网,连得是无网络的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("网络异常,请检查网络设置");
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值