Pessoal, boa noite,
Estou tentando fazer uma aplicação para celular usando exemplos de livros. Cheguei até a parte abaixo, mas tem alguma coisa errada que não consigo descobrir qual é a origem.
A maioria das vezes que tento usar a aplicação o programa cai no catch da IOException.
Alguém pode indicar o que posso fazer para resolver isso?
class ImportaDocs extends Thread {
public void run () {
getTxtAlertas().setString("Recebendo dados... Aguarde...");
switchDisplayable(null, getTxtAlertas());
try {
con = (HttpConnection)Connector.open(enderecoServerImporta + "?cMatricula=" + txtMatricula.getString() + "&cHora=" + getDataAtual());
int status = con.getResponseCode();
int ch = 0;
String Docs = null;
if (status == HttpConnection.HTTP_OK){
iCelular = con.openInputStream();
bOCelular = new ByteArrayOutputStream();
while ((ch = iCelular.read()) != -1) {
bOCelular.write (ch);
}
Docs = new String (bOCelular.toByteArray());
bOCelular.close();
if (Docs.length() > 0) {
nTotalDocs = 0;
if (Docs.startsWith("OK ")) {
getTxtAlertas().setString("Recebendo dados... Aguarde...");
switchDisplayable(null, getTxtAlertas());
montaListaGravacao ();
for (int nCount = 4; nCount < Docs.length(); nCount += 125) {
//System.out.println (Docs.substring(nCount, nCount + 125));
gravaDoc (Docs.substring(nCount, nCount + 125));
}
getAlMensagens().setString(" " + nTotalDocs + " Docs recepcionados.");
switchDisplayable(getAlMensagens(), getLsMenu());
}
else if (Docs.startsWith("ERRO")) {
getAlMensagens().setString(Docs.substring(4).trim());
switchDisplayable(getAlMensagens(), getLsMenu());
}
else {
getAlMensagens().setString("Sinal de rede fraco, tente novamente...");
switchDisplayable(getAlMensagens(), getLsMenu());
}
}
else {
getAlMensagens().setString("Não há dados disponíveis.");
switchDisplayable(getAlMensagens(), getLsMenu());
}
}
else {
getAlMensagens().setString("Erro : Problemas no servidor, tente novamente mais tarde...");
switchDisplayable(getAlMensagens(), getLsMenu());
}
}
catch (ConnectionNotFoundException e){
getAlMensagens().setString("ImportaDocs: Não foi possível estabelecer conexão.");
switchDisplayable(getAlMensagens(),getLsMenu());
}
catch (IOException e) {
getAlMensagens().setString("ImportaDocs: Problemas com o IO da aplicação.");
switchDisplayable(getAlMensagens(),getLsMenu());
}
catch (Exception e) {
getAlMensagens().setString("Ocorreu um erro durante a tentativa de recepção dos Docs, tente novamente dentro de minutos ou procure a central.");
switchDisplayable(getAlMensagens(),getLsMenu());
}
finally {
try {
if (con != null)
con.close();
if (bOCelular != null)
bOCelular.close();
}
catch (Exception e){
getAlMensagens().setString("ImportaDocs: Problemas no tratamento dos erros.");
switchDisplayable(getAlMensagens(),getLsMenu());
}
}
}