>
Galera ele não replica, da erro na linha InputStreamReader ips = new InputStreamReader(http.getInputStream());
package br.com.premises;
import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import android.app.Activity;
import android.app.ProgressDialog;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.widget.Toast;
public class EnviarDados extends Activity implements Runnable{
SQLiteDatabase BancoDados = null;
Cursor cursor;
int totalReplicado = 0;
int QtdeRegistros = 0;
ProgressDialog pgd;
String error = "";
/* variavel para o nome do banco */
private static final String NomeBanco = "Premises.DB";
private static final String PATH = "/Premises/Dados/";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.enviar_dados);
}
public void EnviarClick(View v){
String diretorio = Environment.getExternalStorageDirectory() + PATH;
File dir = new File(diretorio);
dir.mkdirs();
BancoDados = openOrCreateDatabase(NomeBanco, MODE_WORLD_READABLE, null);
File dbfile = new File(diretorio+NomeBanco);
BancoDados = SQLiteDatabase.openOrCreateDatabase(dbfile, null);
cursor = BancoDados.rawQuery("select * from [CLIENTES] where enviado = 'N' and novo = 'S'", null);
QtdeRegistros = cursor.getCount(); //Variavel pega o total de registros no db
totalReplicado = 0; //Variavel pega o total de replicados
pgd = new ProgressDialog(EnviarDados.this);
pgd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
pgd.setCancelable(false);
pgd.setTitle("Recebendo dados.");
pgd.setMax(QtdeRegistros);
pgd.show();
new Thread(EnviarDados.this).start();
}
public void run() {
Log.i("run: ", "" + "iniciou o run");
Log.i("run: ", "" + "Qtde de registros: "+QtdeRegistros);
while(cursor.moveToNext()){
Log.i("run: ", "" + "entrou no cursor");
StringBuilder strURL = new StringBuilder();
strURL.append("http://7master.com.br/SantaCruz/Insert.php?CodigoInterno=");
strURL.append(cursor.getInt(cursor.getColumnIndex("CodigoInterno")));
strURL.append("&Pessoa=");
strURL.append(cursor.getString(cursor.getColumnIndex("Pessoa")));
strURL.append("&Razao=");
strURL.append(cursor.getString(cursor.getColumnIndex("Razao")));
strURL.append("&Fantasia=");
strURL.append(cursor.getString(cursor.getColumnIndex("Fantasia")));
strURL.append("&CNPJ_CPF=");
strURL.append(cursor.getString(cursor.getColumnIndex("CNPJ_CPF")));
strURL.append("&IE_RG=");
strURL.append(cursor.getString(cursor.getColumnIndex("IE_RG")));
strURL.append("&Endereco=");
strURL.append(cursor.getString(cursor.getColumnIndex("Endereco")));
strURL.append("&Numero=");
strURL.append(cursor.getString(cursor.getColumnIndex("Numero")));
strURL.append("&Complemento=");
strURL.append("null");
strURL.append("&Bairro=");
strURL.append(cursor.getString(cursor.getColumnIndex("Bairro")));
strURL.append("&Cep=");
strURL.append(cursor.getString(cursor.getColumnIndex("Cep")));
strURL.append("&Cidade=");
strURL.append(cursor.getString(cursor.getColumnIndex("Cidade")));
strURL.append("&UF=");
strURL.append(cursor.getString(cursor.getColumnIndex("UF")));
strURL.append("&Intinerario=");
strURL.append(cursor.getString(cursor.getColumnIndex("Intinerario")));
strURL.append("&Fone1=");
strURL.append(cursor.getString(cursor.getColumnIndex("Fone1")));
strURL.append("&Fone2=");
strURL.append(cursor.getString(cursor.getColumnIndex("Fone2")));
strURL.append("&Fone3=");
strURL.append(cursor.getString(cursor.getColumnIndex("Fone3")));
strURL.append("&Email=");
strURL.append(cursor.getString(cursor.getColumnIndex("Email")));
strURL.append("&Data_Nascimento=");
strURL.append(cursor.getString(cursor.getColumnIndex("Data_Nascimento")));
strURL.append("&Novo=");
strURL.append(cursor.getString(cursor.getColumnIndex("Novo")));
strURL.append("&Alterado=");
strURL.append(cursor.getString(cursor.getColumnIndex("Alterado")));
strURL.append("&Setor=");
strURL.append(cursor.getString(cursor.getColumnIndex("Setor")));
strURL.append("&DiaSemana=");
strURL.append(cursor.getString(cursor.getColumnIndex("DiaSemana")));
strURL.append("&Ordem=");
strURL.append(cursor.getString(cursor.getColumnIndex("Ordem")));
strURL.append("&Rota=");
strURL.append(cursor.getString(cursor.getColumnIndex("Rota")));
strURL.append("&Enviado=");
strURL.append("S");
Log.i( " loop: ", strURL.toString());
try {
Log.i( " ee: ", "iniciou o try :");
URL url = new URL(strURL.toString());
HttpURLConnection http = (HttpURLConnection) url.openConnection();
Log.i( " ee: ", "iniciou o http :"+url);
InputStreamReader ips = new InputStreamReader(http.getInputStream());
Log.i( " ee: ", "iniciou o ips :");
BufferedReader line = new BufferedReader(ips);
Log.i( " linha retorno BufferedReader: ", line.readLine());
String linhaRetorno = line.readLine();
if(linhaRetorno.equals("Y")){
Log.i( " linha retorno: ", strURL.toString());
//BancoDados.execSQL("update clientes set novo = 'S' where _id ="+new String[]{String.valueOf(cursor.getInt(0))}, null);
totalReplicado++;
}
} catch (Exception e) {
Log.i( " linha: ", "Erro ssdsdssds");
}
if(QtdeRegistros == totalReplicado){
hl.sendEmptyMessage(1);
} else {
error = "Ocorreu algum erro no sistema.";
hl.sendEmptyMessage(2);
}
//Final verifica se existe dados
}
BancoDados.close();
}
public Handler hl = new Handler(){
public void handleMessage(Message msg) {
if(msg.what == 0){
pgd.setProgress(pgd.getProgress() + 1);
} else if(msg.what == 1){
pgd.dismiss();
Toast.makeText(EnviarDados.this, "Os Dados foram enviados com sucesso!!", Toast.LENGTH_LONG).show();
} else if(msg.what == 2){
pgd.dismiss();
Toast.makeText(EnviarDados.this, "Erro ao enviar os dados: " + error, Toast.LENGTH_LONG).show();
}
}
};
}
InputStreamReader ips = new InputStreamReader(http.getInputStream());
O erro é pq na linha strURL.append(cursor.getString(cursor.getColumnIndex("Razao"))); tem um espaço em branco.
Como tratar isso?
Sidney
Verifique cursor.getString(cursor.getColumnIndex("Razao")) se tem char.
Se tiver, ai você executa o:
strURL.append(cursor.getString(cursor.getColumnIndex("Razao")));
Exemplo:
if (CONDICAO){
strURL.append(cursor.getString(cursor.getColumnIndex("Razao")));
}