Ola,
Estou trabalhando com conexão Blueetooth utilizando o Marge. Construi um chat para enviar mensagens de texto entre dois celulares e funcionou perfeitamente.
O problema é quando tento enviar uma quantidade grande de texto, por algum motivo, o marge não envia o texto todo.
Por exemplo quando tento enviar a string
CAB#0#1#0#25/02/2011 18:00#25/02/2011 18:07#4150#572943#1%CAB#0#1#0#25/02/2011 17:00#25/02/2011 17:3#4150#572943#0
O outro celular recebe somente:
CAB#0#1#0#25/02/2011 18:00#25/02/2011 18:07#4150
Existe alguma restrição no tamanho da string a ser enviada pelo Marge?
Estou usando dois celulares Nokia 3120 Classic no teste.
Se alguém tive alguma luz serei grato.
Abraços
Por que usar marge, eu fiz uma chat q suporta mais de duas pessoas sem usar marge e nao vi nenhum probleama se quiser posso te passar um codigo rapido e simples de conexao bluetooth servidor-cliente.
E quantos caracters tem sua string porque o meu ja enviei ate 64.
Ola Antonio,
Eu só fiz o chat para aprender como utilizar o Marge.
Agora estou desenvolvendo outro sistema que armazena dados em um RMS e algumas vezes será necessário enviar os dados que estiverem gravados no RMS para outro celular. Foi neste caso que identifiquei o problema.
Mas gostaria sim de receber seu código para fazer testes com outros meios de enviar os dados que não seja o Marge.
O teste que fiz tinha aproximadamente 115 caracteres mas é bem provavel que a aplicação envie quantidade maiores.
Servidor
public void runServer(){
new Thread(){
public void run(){
try{
StreamConnectionNotifier notfier=(StreamConnectionNotifier)Connector.open("btspp://localhost:12345");//pode trocar 12345
StreamConnection conn=notifier.acceptAndOpen();
DataInputStream in=conn.openDataInputStream();
DataOutputStream os=conn.openDataOutputStream();
os.writeUTF("ola");
os.flush();
System.out.print(in.readUTF());
}catch(Exception e){
ex.printStackTrace();
}
}
}.start();
}
Cliente
public void runCliente(){
new Thread(){
public void run(){
try{
LocalDevice local=LocalDevice.getLocalDevice();
DiscoveryAgent agent=local.getDiscoveryAgent();
String conURL=agent.selectService(new UUID("12345",false),ServiceRecord.NOAUTHENTICATE_NOENCRYPT,false);
if(connURL!=null){
StreamConnection conn=notifier.acceptAndOpen();
DataInputStream in=conn.openDataInputStream();
DataOutputStream os=conn.openDataOutputStream();
os.writeUTF("ola");
os.flush();
System.out.print(in.readUTF());
}else{
//Nada encontrado
}
}catch(Exception e){
ex.printStackTrace();
}
}
}.start();
}
Obrigado.
Infelizmente terei mesmo que deixar de usar o Marge e usar outro caminho pois o erro continua.
[quote=AntonioDiego]Servidor
public void runServer(){
new Thread(){
public void run(){
try{
StreamConnectionNotifier notfier=(StreamConnectionNotifier)Connector.open("btspp://localhost:12345");//pode trocar 12345
StreamConnection conn=notifier.acceptAndOpen();
DataInputStream in=conn.openDataInputStream();
DataOutputStream os=conn.openDataOutputStream();
os.writeUTF("ola");
os.flush();
System.out.print(in.readUTF());
}catch(Exception e){
ex.printStackTrace();
}
}
}.start();
}
Cliente
[code]
public void runCliente(){
new Thread(){
public void run(){
try{
LocalDevice local=LocalDevice.getLocalDevice();
DiscoveryAgent agent=local.getDiscoveryAgent();
String conURL=agent.selectService(new UUID(“12345”,false),ServiceRecord.NOAUTHENTICATE_NOENCRYPT,false);
if(connURL!=null){
StreamConnection conn=notifier.acceptAndOpen();//Na verdade é StreamConnection conn=Connector.open(connURL);
DataInputStream in=conn.openDataInputStream();
DataOutputStream os=conn.openDataOutputStream();
os.writeUTF(“ola”);
os.flush();
System.out.print(in.readUTF());
}else{
//Nada encontrado
}
}catch(Exception e){
ex.printStackTrace();
}
}
}.start();
}
[/code][/quote]