[quote=gabrields]Prezado Mohawk,
sou professor e estou com um problema sério e urgente em um projeto que desenvolvo: tenho um hardware construído para captar as medidas de sensores e transmiti-las, via Bluetooth, para um dispositivo móvel.
Quando uso um terminal bluetooth para ler que está vindo, está tudo ok. Isto comprova que o programinha gravado no microcontrolador está ok.
Entretanto, quando faço meu programa Android (um server) e instalo no smarthphone os dados vêem todos truncados.
Como não tenho thread no emissor (circuito eletrônico), os dados são enviados dentro de um laço infinito de repetições. No servidor (Android) tenho as threads, mas a sensação que tenho é de que estão sem sincronismo.
Você pode me ajudar? Estou precisando disso urgentíssimo.
Antecipo meus agradecimentos!
Att.
Gabriel[/quote]
Eu dou aula de Android para interfaces Bluetooth e Wi-Fi nunca viu o que voce esta dizendo, bom você não disse mas o que você deve estar usando um módulo bluetooth utilizando o SPP, certo?
O que realmente é necessário para o Android se conectar se for o caso. Digamos que é um módulo semelhante a da empresa Roving Networks de Los Gatos no EUA no qual eu sou suporte Android para Bluetooth www.rovingnetwork.com
é um modulo de tunel serial UART <-> Bluetooth.
Se for, siga estes passos.
Parear o modulo fora da aplicação. Não tente uma conexão sem pareamento, não é uma boa prática.
Nem preciso dizer sobre as permissões isso é básico.
- Teste se a unidade local esta ligada
- Obtenha a unidade remota pelo mac dela mas faça o pareamento pelo aparelho e não por software. Houve uma mudança do 2.1 para 2.2 e quem não sabe das diferenças vai se embananar aqui.
- Obtenha o socket com a unidade remota, passo anterior, junto com o UUID do SPP
- Com o socket obtenha os IOs. InputStream e OutputStream.
- Ainda com o socket poderá usar o método connect() pronto sua conexão pronta nas camadas: física, enlace e rede. OSI
Esqueça um pouco essa estrutura de Mestre e Escravo pelo visto voce começou j2me, seria isso? no Android o que se aprendeu em j2me não se aplica quase nada.
Se não souber como faz, eu dou aulas disso nesta empresa http://www.microgenios.com.br um curso de Android como interface homem máquina.
Esta parecendo que voce esta por exemplo com um MCU em uma taxa de transmissão serial e o modulo em outra. Um erro de configuração muito comum mas como seu terminal Bluetooth funciona como vc diz
só resta uma pergunta sua conversão de array de bytes esta correta? se estamos falando somente no Bluetooth(rádio) e não no serial(UART) ou voce não converteu de forma correta de String para array de bytes ou de array de bytes para String.
Coloque seu código aqui para que eu possa analisar. Não precisa de Thread se voce conhece o que e quando vai receber ainda mais se a aplicação é didática.
Você não conseguiu entender o exemplo do chat Bluetooth? bastar trocar a UUID? Lá sim usa Thread de uma forma magnífica. O Blueterm copiou eu também usei e fiz para Roving a minha aplicação RN Talk e deixei livre também no Google Market a quase 2 anos.
Mohawk