Então,
--
-- Ainda com problema com isso, mas consegui ir mais afundo no "o que é meu problema".
Acontece que no meu BluetoothLeService tem esse callback que as vezes está recebendo newState = 0 (que é STATE_DISCONNECTED) e status = 133.
private final BluetoothGattCallback mGattCallback = new BluetoothGattCallback() {
@Override
public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) {
String intentAction;
if (newState == BluetoothProfile.STATE_CONNECTED) {
intentAction = ACTION_GATT_CONNECTED;
mConnectionState = STATE_CONNECTED;
broadcastUpdate(intentAction);
Log.i(TAG, "Connected to GATT server.");
// Attempts to discover services after successful connection.
Log.i(TAG, "Attempting to start service discovery:" +
mBluetoothGatt.discoverServices());
} else if (newState == BluetoothProfile.STATE_DISCONNECTED) {
intentAction = ACTION_GATT_DISCONNECTED;
mConnectionState = STATE_DISCONNECTED;
Log.i(TAG, "Disconnected from GATT server.");
broadcastUpdate(intentAction);
}
}
Quando isso acontece o meu dispositivo não se conecta e tenho que reiniciar a aplicação.
Alguém tem ideia do que possa ser?
Em 9 de agosto de 2016 16:43, Francis Mariano <francismariano@gmail.com> escreveu:
@MarceloVocê diz aqui que "O dispositivo bluetooth deveria conectar ao seu dispositivo pra dizer que uma propriedade mudou". Entendi o que vc falou, mas fiquei com uma dúvida: quando ativamos notificação de uma caracteristica, não temos que estar conectados ao dispositivo para receber o callback de onCharacteristicChanged??Como o Android consegue ver que o dispositivo bluetooth solicitou uma conexão para ele?--Em 9 de agosto de 2016 16:26, Marcelo Alves <marcelo.alves@gmail.com> escreveu:2016-08-09 14:28 GMT-03:00 Gustavo Monteiro <gustavosmonteiro@gmail.com>:A aplicação deverá funcionar assim:Logo que abrir o app, a primeira tela será uma lista de hardwares com os quais você poderá clicar para se conectar.Até esse ponto você só deu scan, não precisa se conectar a nada, só guardar uma referencia ao dispositivo.Após a conexão der certo, passará para a segunda tela. Nesta, haverá um botão "Scan digital" que ao ser clicado se comunicará com o hardware conectado e ligará o leitor de digital dele (para fazer login).Aqui imagino que tenha um read_notify e um write.Depois mostrará as informações pessoais de quem inseriu a digital. Prosseguindo nas telas, haverá outra activity que comunicará com o hardware para scanear a digital de um "cliente"....O dispositivo bluetooth deveria conectar ao seu dispositivo pra dizer que uma propriedade mudou.O problema é que quando chego na parte da digital do cliente já perdi a referência do bluetooth conectado, ou não consigo passar por bundle. Sempre o Service se desconecta antes de chegar lá...LowEnergy se baseia na troca de pacotes, não stream de informações. Não faz sentido manter uma conexão aberta em LE se não há dados sendo trafegados.Deu pra entender?--
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 .
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 .
Gustavo da Silva Monteiro
UFC - Graduado em Computação
UFC - Graduado em Computação
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