我正在开发一款仅适用于Android的应用程序,形成冰淇淋三明治到果冻豆安卓版。
我有一个功能可以检测是否存在互联网连接,效果很好。
但是当设备连接但没有互联网访问权限时,它会崩溃并向我发送跟随激励
HttpRequest$HttpRequestException: java.net.SocketException: recvfrom failed: ECONNRESET (Connection reset by peer)
例如,当设备上有3G数据但没有上网时,因为它没有任何数据余额。
我正在使用http-request library向服务器发出请求。
我也尝试捕获异常来处理错误并引起用户反馈,但Eclipse发送错误
this exception is never thrown for the try statement body
这是我的第一次尝试
if(LaConstante.isConected(ctx)){
try{
new ObtenerTiposReporte().execute(b.getString("tipo"));
}catch(IOException e){
if (e.getMessage().indexOf("Connection reset by peer") > 0);
}
}else{
ProgressBar progressBarListaReportes = (ProgressBar) findViewById(R.id.progressBarListaReportes);
progressBarListaReportes.setVisibility(View.INVISIBLE);
Toast.makeText(ctx, "Lo sentimos, se requiere de una conexión a Internet para reportar", Toast.LENGTH_LONG).show();
Intent i2 = new Intent(ctx, MainActivity.class);
startActivity(i2);
}
我也尝试在发出请求时直接捕获异常
String jsonString = "";
try{
jsonString = HttpRequest.post(LaConstante.getInstance().TIPOS_DE_REPORTE+params[0]).form(data).body();
}catch(IOException e){
if (e.getMessage().indexOf("Connection reset by peer") > 0);
}
我不知道如何处理错误,以便向用户提供最新信息。