Uso efetivo dos buffers em transmissões Bluetooth
Si você esta vindo transmissões de dados muito lentas entre uma impressora Bluetooth e o seu aplicativo, pôde ser que tenha que ver com o método que você esteja usando para a buffering dos dados que vão do aplicativo J2ME à impressora.
O código que segue lei o conteúdo duma cadeia Dados e os escreve a um OutputStream, os:
os.write(Dados.charAt(i));
i++;
}
Parecera, na análise inicial, que o processo de ler um caracter cada vez e o escrever ao OutputStreeam deveria funcionar. Mais em realidade, esta transferência de dados resulta muito lenta. O problema tem raiz no seguinte: cada operação os.write() usa um buffer separado para gerenciar a transferência de dados à impressora. Num equipamento com limites (como é um aparelho móvel), isso cria um problema porque é muito mais comum achar que os buffers disponíveis ficam lotados. Nesse caso, o equipamento espera 10000 ms (nos equipamentos iDEN) antes de intentar novamente -- e, no caso do código exemplo, espera 10000 ms cada vez que entra na avaliação da condição while().
Simplesmente remplazar o código com
resolve o problema.
- Logue-se ou registre-se para enviar comentários
- 2477 leituras
- English
- Español
