Fiz seguindo um tutorial a conexão do android studio com o sql server 2008 r2 ( já existente), o qual eu consegui fazer a conexão normalmente. só que estou com um problema, eu consigo fazer a conexão com o banco caso a conexão com o banco seja bem sucedida (aceso a porta, internet ok, etc). caso eu não consiga acesso ao banco (acesso a porta negada ou falta de internet no pc servidor) o programa entra em uma tela preta como se ficasse tentando conectar ao banco e só depois de um tempo ele me retorna um erro.
olha o codigo que eu uso
Conexão Dao
public class ConexaoDao { @SuppressLint("NewApi") public Connection dbConnect(ObjetoConexao objConexao) { StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); Connection conn = null; String connectionUrl = null; try { Class.forName("net.sourceforge.jtds.jdbc.Driver"); connectionUrl = "jdbc:jtds:sqlserver://" + objConexao.db_connect_string + ";" + "databaseName=" + objConexao.db_name + ";user=" + objConexao.db_userid + ";password=" + objConexao.db_password + ";"; conn = DriverManager.getConnection(connectionUrl); return conn; } catch(ClassNotFoundException cnf){ System.out.println ("Classe JDBC Driver nao encontrada."); return null; } catch(SQLException sql){ System.out.println ("Erro ao se conectar com o banco de dados."); return null; } catch(Exception e){ System.out.println (e.getMessage()); return null; } } }classe onde faço a pesquisa
public class Dao_PcCampestre extends Context{ public String nomeTabela() { String nomeResTorres = ""; ConexaoDao conexao = new ConexaoDao(); ObjetoConexao objConexao = new ObjetoConexao(); objConexao.db_connect_string = "ronaldesantos.hopto.org:1433"; objConexao.db_name = "Barbacena2"; objConexao.db_userid = "sa"; objConexao.db_password = "flextelecom"; Connection conn = conexao.dbConnect(objConexao); if (conn == null) { nomeResTorres = "Não foi possivel se conectar ao banco de dados"; } else if (conn != null) try { Statement statement = conn.createStatement(); String queryString = "select TOP 1 Area ,Source,Message from Alarmes Where AREA = 'POÇO CAMPESTRE' AND Source ='xo_Alarmes.Falta_Energia' order By E3TimeStamp DESC "; ResultSet rs; rs = statement.executeQuery(queryString); if (rs.next()) { nomeResTorres = rs.getString("Message"); } rs.close(); } catch (SQLException e) { System.out.println (e.getMessage()); return null; } return nomeResTorres; } public String nomeTabela2() { String nomeResTorres2 = ""; ConexaoDao conexao = new ConexaoDao(); ObjetoConexao objConexao = new ObjetoConexao(); objConexao.db_connect_string = "ronaldesantos.hopto.org:1433"; objConexao.db_name = "Barbacena2"; objConexao.db_userid = "sa"; objConexao.db_password = "flextelecom"; Connection conn = conexao.dbConnect(objConexao); if (conn == null) { nomeResTorres2 = "Não foi possivel se conectar ao banco de dados"; return ""+ nomeResTorres2; }else if (conn != null) try { Statement statement = conn.createStatement(); String queryString = "select TOP 1 Code from Tbl_Comunicacao_Pc_Campestre where Situacao = 'Recepção (RX) - Aguardando' or Situacao = 'Recepção (RX) - OK' or Situacao = 'Recepção (RX) - Erro' order By E3TimeStamp DESC "; ResultSet rs; rs = statement.executeQuery(queryString); if (rs.next()) { nomeResTorres2 = rs.getString("Code"); if (nomeResTorres2.equals("255")) { nomeResTorres2 = "Aguardando Recepção"; } else if (nomeResTorres2.equals("0")) { nomeResTorres2 = "Recepção OK"; } else if (nomeResTorres2.equals("4")) { nomeResTorres2 = "Recepção OK"; } else if (nomeResTorres2.equals("1")) { nomeResTorres2 = "Falha na Recepção"; } rs.close(); } } catch (SQLException e) { System.out.println (e.getMessage()); return null; } return ""+ nomeResTorres2; } public String nomeTabela3() { String nomeResTorres3 = ""; ConexaoDao conexao = new ConexaoDao(); ObjetoConexao objConexao = new ObjetoConexao(); objConexao.db_connect_string = "ronaldesantos.hopto.org:1433"; objConexao.db_name = "Barbacena2"; objConexao.db_userid = "sa"; objConexao.db_password = "flextelecom"; Connection conn = conexao.dbConnect(objConexao); if (conn == null) { nomeResTorres3 = "Não foi possivel se conectar ao banco de dados"; return ""+ nomeResTorres3; }else if (conn != null) try { Statement statement = conn.createStatement(); String queryString = "select TOP 1 Area,Source,Message from Alarmes Where AREA = 'POÇO CAMPESTRE' AND Source ='xo_Alarmes.Presenca' order By E3TimeStamp DESC "; ResultSet rs; rs = statement.executeQuery(queryString); if (rs.next()) { nomeResTorres3 = rs.getString("Message"); } rs.close(); } catch (SQLException e) { System.out.println (e.getMessage()); return null; } return ""+ nomeResTorres3; } public String nomeTabela5() { String nomeResTorres5 = ""; ConexaoDao conexao = new ConexaoDao(); ObjetoConexao objConexao = new ObjetoConexao(); objConexao.db_connect_string = "ronaldesantos.hopto.org:1433"; objConexao.db_name = "Barbacena2"; objConexao.db_userid = "sa"; objConexao.db_password = "flextelecom"; Connection conn = conexao.dbConnect(objConexao); if (conn == null) { nomeResTorres5 = "Não foi possivel se conectar ao banco de dados"; return "" + nomeResTorres5; } else if (conn != null) try { Statement statement = conn.createStatement(); String queryString = "select TOP 1 Area ,Source,Message from Alarmes Where AREA = 'POÇO CAMPESTRE' AND Source ='xo_Alarmes.Sobrecarga' order By E3TimeStamp DESC "; ResultSet rs; rs = statement.executeQuery(queryString); if (rs.next()) { nomeResTorres5 = rs.getString("Message"); } rs.close(); } catch (SQLException e) { System.out.println (e.getMessage()); return null; } return "" + nomeResTorres5; } public String nomeTabela6() { String nomeResTorres6 = ""; ConexaoDao conexao = new ConexaoDao(); ObjetoConexao objConexao = new ObjetoConexao(); objConexao.db_connect_string = "flexsas.hopto.org:1433"; objConexao.db_name = "Barbacena2"; objConexao.db_userid = "sa"; objConexao.db_password = "flextelecom"; Connection conn = conexao.dbConnect(objConexao); if (conn == null) { nomeResTorres6 = "Não foi possivel se conectar ao banco de dados"; return "" + nomeResTorres6; }else if (conn != null) { try { Statement statement = conn.createStatement(); String queryString = "select TOP 1 Estado from Tbl_Acionamentos_Pc_Campestre order By E3TimeStamp DESC "; ResultSet rs; rs = statement.executeQuery(queryString); if (rs.next()) { nomeResTorres6 = rs.getString("Estado"); } rs.close(); } catch (SQLException e) { System.out.println (e.getMessage()); return null; } } return "" + nomeResTorres6; }o Main
public class Act_Poco_Campestre extends AppCompatActivity implements View.OnClickListener { private Button btnFechar; private TextView tvNomeComunicacao; private ImageView ImgSinal; private ImageView ImgStatus; private TextView tvNomeStatus; private TextView tvNomePresenca; private ImageView ImgPresenca; private TextView tvNomeFalha; private ImageView Imgfalha; private TextView tvNomeEnergia; private ImageView ImgEnergia; String Aguardanando = "Aguardando Recepção"; String Recepcao = "Recepção OK"; String Falha = "Falha na Recepção"; String PresencaAc = "Sensor Invasão Atuado"; String PresencaN = "Sensor Invasão Desarmado"; String FalhaAc = "Sobrecarga Motor"; String FalhaN = "Rearme Sobrecarga"; String StatusAc = "Ligado"; String StatusN = "Desligado"; String EnergiaAc = "Falta Enegia Eletrica"; String EnergiaN = "Enegia Eletrica Restabelecida"; String FalhaCon = "Não foi possivel se conectar ao banco de dados"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.act__poco__campestre); btnFechar = (Button) findViewById(R.id.btnFechar); btnFechar.setOnClickListener(this); tvNomeComunicacao = (TextView) findViewById(R.id.tvNomeComunicacao); ImgSinal = (ImageView) findViewById(R.id.ImgSinal); ImgStatus = (ImageView) findViewById(R.id.ImgStatus); ImgPresenca = (ImageView) findViewById(R.id.ImgPresenca); tvNomePresenca = (TextView) findViewById(R.id.tvNomePresenca); Imgfalha = (ImageView) findViewById(R.id.ImgFalha); tvNomeFalha = (TextView) findViewById(R.id.tvNomeFalha); tvNomeStatus = (TextView) findViewById(R.id.tvNomeEstado); ImgEnergia = (ImageView) findViewById(R.id.ImgEnergia); tvNomeEnergia = (TextView) findViewById(R.id.tvNomeEnergia); Dao_PcCampestre dao_pcCampestre1= new Dao_PcCampestre(); Dao_PcCampestre dao_pcCampestre2= new Dao_PcCampestre(); Dao_PcCampestre dao_pcCampestre3= new Dao_PcCampestre(); Dao_PcCampestre dao_pcCampestre4= new Dao_PcCampestre(); Dao_PcCampestre dao_pcCampestre5= new Dao_PcCampestre(); String nomeEnergia = dao_pcCampestre1.nomeTabela(); String nomeComunicacao = dao_pcCampestre2.nomeTabela2(); String nomePresenca = dao_pcCampestre3.nomeTabela3(); String nomeFalha = dao_pcCampestre4.nomeTabela5(); String nomeAcionamento = dao_pcCampestre5.nomeTabela6(); if (nomeComunicacao.equals(Aguardanando)) { tvNomeComunicacao.setTextColor(Color.parseColor("#FFFEED04")); tvNomeComunicacao.setText("" + "Aguardando Recepção"); ImgSinal.setImageResource(R.drawable.samarelo); } else if (nomeComunicacao.equals(Recepcao)) { tvNomeComunicacao.setTextColor(Color.parseColor("#FF60FB07")); tvNomeComunicacao.setText("" + " Recepção OK"); ImgSinal.setImageResource(R.drawable.sverde); } else if (nomeComunicacao.equals(Falha)) { tvNomeComunicacao.setTextColor(Color.parseColor("#FFFC120E")); tvNomeComunicacao.setText("" + "Falha na Recepção"); ImgSinal.setImageResource(R.drawable.svermelho); } else if (nomeComunicacao.equals(FalhaCon)){ tvNomeComunicacao.setTextColor(Color.parseColor("#FF60FB07")); tvNomeComunicacao.setText("" + " Não foi possivel se conectar ao banco de dados"); } if (nomePresenca.equals(PresencaN)) { tvNomePresenca.setTextColor(Color.parseColor("#FF60FB07")); tvNomePresenca.setText("" + " Sensor Invasão Desarmado"); ImgPresenca.setImageResource(R.drawable.presencaon); } else if (nomePresenca.equals(PresencaAc)) { tvNomePresenca.setTextColor(Color.parseColor("#FFFC120E")); tvNomePresenca.setText("" + "Sensor Invasão Atuado"); ImgPresenca.setImageResource(R.drawable.presenca); } else if (nomePresenca.equals(FalhaCon)) { tvNomePresenca.setTextColor(Color.parseColor("#FF60FB07")); tvNomePresenca.setText("" + " Não foi possivel se conectar ao banco de dados"); } else if (nomePresenca.isEmpty()) { tvNomePresenca.setTextColor(Color.parseColor("#FF60FB07")); tvNomePresenca.setText("" + " Sensor Invasão Desarmado"); ImgPresenca.setImageResource(R.drawable.presencaon); } if (nomeFalha.equals(FalhaN)){ tvNomeFalha.setTextColor(Color.parseColor("#FF60FB07")); tvNomeFalha.setText("" + " Rearme Falha"); } else if (nomeFalha.equals(FalhaAc)) { tvNomeFalha.setTextColor(Color.parseColor("#FFFC120E")); tvNomeFalha.setText("" + "Falha Motor"); Imgfalha.setImageResource(R.drawable.falhaon); }else if (nomeFalha.equals(FalhaCon)){ tvNomeFalha.setTextColor(Color.parseColor("#FF60FB07")); tvNomeFalha.setText("" + " Não foi possivel se conectar ao banco de dados"); }else if (nomeFalha.isEmpty()){ tvNomeFalha.setTextColor(Color.parseColor("#FF60FB07")); tvNomeFalha.setText("" + " Rearme Falha"); } if (nomeEnergia.equals(EnergiaN)){ tvNomeEnergia.setTextColor(Color.parseColor("#FF60FB07")); tvNomeEnergia.setText("" + " Enegia Eletrica Ok"); ImgEnergia.setImageResource(R.drawable.energiaon); } else if (nomeEnergia.equals(EnergiaAc)) { tvNomeEnergia.setTextColor(Color.parseColor("#FFFC120E")); tvNomeEnergia.setText("" + "Falta Enegia Eletrica"); ImgEnergia.setImageResource(R.drawable.energiaoff); } else if (nomeEnergia.equals(FalhaCon)){ tvNomeEnergia.setTextColor(Color.parseColor("#FF60FB07")); tvNomeEnergia.setText("" + " Não foi possivel se conectar ao banco de dados"); } else if (nomeEnergia.isEmpty()){ tvNomeEnergia.setTextColor(Color.parseColor("#FF60FB07")); tvNomeEnergia.setText("" + " Enegia Eletrica OK"); ImgEnergia.setImageResource(R.drawable.energiaon); } if (nomeAcionamento.equals(StatusN)){ tvNomeStatus.setTextColor(Color.parseColor("#FFFC120E")); tvNomeStatus.setText("" + " Poço Desligado"); ImgStatus.setImageResource(R.drawable.pocooff); } else if (nomeAcionamento.equals(StatusAc)) { tvNomeStatus.setTextColor(Color.parseColor("#FF60FB07")); tvNomeStatus.setText("" + "Poço Ligado"); ImgStatus.setImageResource(R.drawable.pocon); } else if (nomeAcionamento.equals(FalhaCon)){ tvNomeStatus.setTextColor(Color.parseColor("#FF60FB07")); tvNomeStatus.setText("" + " Não foi possivel se conectar ao banco de dados"); } else if (nomeAcionamento.isEmpty()){ tvNomeStatus.setTextColor(Color.parseColor("#FFFC120E")); tvNomeStatus.setText("" + " Poço Desligado"); ImgStatus.setImageResource(R.drawable.pocooff); } } @Override public void onClick (View v){ finish(); } }
neste caso clico em um botão que me leva a tela de resultados.
caso problema com a conexão ao banco ( o pc onde está o servidor esta desligado ou sem internet), ele fica em processamento conforme o monitoramento no android studio ( enquanto ele não percorre todas as pesquisa não me retorna nada
06-22 12:00:40.373 2371-2377/br.com.flextelecom.barbacena W/art: Suspending all threads took: 16.647ms 06-22 12:01:09.469 2371-2382/br.com.flextelecom.barbacena W/art: Suspending all threads took: 6.838ms 06-22 12:01:09.476 2371-2382/br.com.flextelecom.barbacena I/art: Background sticky concurrent mark sweep GC freed 7371(946KB) AllocSpace objects, 1(16KB) LOS objects, 23% free, 3MB/4MB, paused 10.003ms total 25.924ms 06-22 12:03:17.195 2371-2371/br.com.flextelecom.barbacena I/System.out: Erro ao se conectar com o banco de dados. 06-22 12:05:24.874 2371-2371/br.com.flextelecom.barbacena I/System.out: Erro ao se conectar com o banco de dados. 06-22 12:07:32.395 2371-2371/br.com.flextelecom.barbacena I/System.out: Erro ao se conectar com o banco de dados. 06-22 12:09:39.913 2371-2371/br.com.flextelecom.barbacena I/System.out: Erro ao se conectar com o banco de dados. 06-22 12:11:47.433 2371-2371/br.com.flextelecom.barbacena I/System.out: Erro ao se conectar com o banco de dados. 06-22 12:11:47.453 2371-2371/br.com.flextelecom.barbacena I/Choreographer: Skipped 38296 frames! The application may be doing too much work on its main thread. 06-22 12:11:47.510 2371-2609/br.com.flextelecom.barbacena W/EGL_emulation: eglSurfaceAttrib not implemented 06-22 12:11:47.510 2371-2609/br.com.flextelecom.barbacena W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0x7f5184c0abc0, error=EGL_SUCCESS
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.






0 comentários:
Postar um comentário