A conexão com os pinpads bluetooth também é realizada pelo SDK. Para isso você utilizará o BluetoothConnectionProvider
.
Liste na sua aplicação todos os aparelhos que já foram conectados ao dispositivo com a função
BluetoothAdapter.getBondedDevices()
do Android. Ela retornará todos os aparelhos que foram pareados com o dispositivo.
O provider BluetoothConnectionProvider
recebe como parâmetro um objeto do tipo PinpadObject, que contém as informações do pinpad.
Esse objeto precisa ser preenchido previamente com as informações coletadas na chamada do método BluetoothAdapter.getBondedDevices()
do Android.
Com a conexão realizada, o equipamento será adicionado em uma lista de pinpads conectados na classe Stone
.
Para obter a lista de pinpads conectados utilize o método
Stone.getPinpadObjectList()
.
Esse método irá retornar uma lista vazia caso o Bluetooth esteja desligado ou não haja conexão.
PinpadObject pinpadSelected = new PinpadObject("Nome do Pinpad", "mac address");
// Passa o pinpad selecionado para o provider de conexão bluetooth.
BluetoothConnectionProvider bluetoothConnectionProvider = new BluetoothConnectionProvider(context, pinpadSelected);
bluetoothConnectionProvider.setDialogMessage("Criando conexao com o pinpad selecionado"); // Mensagem exibida do dialog.
bluetoothConnectionProvider.setConnectionCallback(new StoneCallbackInterface() {
public void onSuccess() {
Toast.makeText(context, "Pinpad conectado", Toast.LENGTH_SHORT).show();
}
public void onError() {
Toast.makeText(context, "Erro durante a conexao. Verifique a lista de erros do provider para mais informacoes", Toast.LENGTH_SHORT).show();
}
});
bluetoothConnectionProvider.execute(); // Executa o provider de conexão bluetooth.
Com o pinpad conectado, a aplicação está pronta para realizar transações.