---
title: "Estrutura do SDK"
url: "https://devcenter.stone.com.br/sdk-android-estrutura-sdk"
image: "https://devcenter.stone.com.br/_og/d/c_Ocean.takumi,title_Estrutura+do+SDK,props_eyJ0aGVtZSI6eyJtb2RlIjoibGlnaHQiLCJjb2xvcnMiOnsicHJpbWFyeSI6IiMzMEE2NkQifX19,p_Ii9zZGstYW5kcm9pZC1lc3RydXR1cmEtc2RrIg,s__l4g4CcZUrGmUkzb.png"
---

# Estrutura do SDK

O SDK Android foi desenvolvido utilizando Providers, um padrão de projeto que simplesmente define um contrato entre a API e camada de dados/lógica.  
Todos os providers possuem o mesmo padrão e estendem de uma classe modelo que herda da classe _AsyncTask_ do Android. Portanto, toda a comunicação com o terminal e chamadas para APIs externas são executadas em background e devem ter algum feedback para o usuário, como por exemplo, informar que o cartão precisa ser inserido no terminal.

Após a execução de um provider, ele realizará uma chamada de retorno para a sua aplicação (_Callback_) com o objetivo de informar o status da sua chamada: se teve sucesso, erro ou qual é o próximo passo a ser executado.

Ao chamar um provider, uma ação será executada. Aconselhamos sempre mostrar o progresso dessa ação para garantir uma melhor experiência de usuário e um feedback da operação.  
Dado isso, se você não quiser implementar o seu próprio feedback de progresso, você pode usar uma interface do SDK - um dialog - a partir dos métodos listados abaixo.

| Método                | Tipo                   | Função                                                                           |
| :-------------------- | :--------------------- | :------------------------------------------------------------------------------- |
| setActivity           | Activity               | Esse método deve ser chamado caso haja necessidade de mudar o contexto em que o provider foi instanciado |
| setDialogMessage      | String                 | Esse método é usado para personalizar a mensagem exibida no dialog de progresso. Caso nada seja passado, é exibido uma mensagem default |
| setDialogTitle        | String                 | Esse método é usado para definir um título para o dialog exibido pelo SDK. Caso nada seja passado, o dialog será exibido sem título |
| setConnectionCallback | StoneCallbackInterface | Esse método é usado para receber a resposta do callback do provider instanciado  |
| getListOfErrors()     | List<ErrorsEnum>       | Esse método retornará uma lista de erros, caso algum tenha ocorrido na operação executada pelo provider |

---

**Jornada: [Integrar pelos Providers](https://devcenter.stone.com.br/sdk-android-overview-da-sdk)**  
Etapa 2 de 18

[**Etapa anterior**Overview do SDK](https://devcenter.stone.com.br/sdk-android-overview-da-sdk)[**Próxima etapa**Lista de Providers](https://devcenter.stone.com.br/sdk-android-providers-da-sdk)

Siga a Stone nas redes sociais

[](https://www.facebook.com/stonepagamentos/)[](https://x.com/sejastone/)[](https://www.instagram.com/stone/)[](https://br.linkedin.com/company/stone-co)[](https://www.youtube.com/channel/UCk4L4JykgoDkN8YeuxkNqIQ)

© Stone Instituição de Pagamento S.A. CNPJ 16.501.555/0001-57

Av. Rebouças, 2880, 4º andar, Pinheiros, CEP 05.402-500 – São Paulo/SP

Instituição de pagamento autorizada pelo Banco Central do Brasil, nas modalidades de credenciadora e emissora de moeda eletrônica.