--- title: "Integrar o SDK Android" slug: "android-sdk-integration" updated: 2026-06-12T10:30:51Z published: 2026-06-12T10:30:51Z canonical: "docs.xtremepush.com/android-sdk-integration" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.xtremepush.com/llms.txt > Use this file to discover all available pages before exploring further. # Integrar o SDK Android Use o Xtremepush SDK para integrar seu app Android na plataforma 1. No seu arquivo Application.java importe a biblioteca: ```java import ie.imobile.extremepush.PushConnector; ``` 1. No método onCreate do seu arquivo Application.java, você deve adicionar o seguinte: **Java** ```java public class YOUR_APPLICATION extends Application {    public void onCreate() {        super.onCreate(); ...        new PushConnector.Builder("XPUSH_APP_KEY", "GOOGLE_SENDER_ID")            .create(this);    } ``` **Kotlin** ```kotlin public class YOUR_APPLICATION extends Application {    public void onCreate() {        super.onCreate(); ...        PushConnector.Builder("XPUSH_APP_KEY", "GOOGLE_SENDER_ID")            .create(this);    } ``` O comando para inicializar o PushConnector recebe os valores dos parâmetros no formato String. *XPUSH_APP_KEY* é a chave SDK fornecida ao [adicionar o app à plataforma](/documentation/docs/pt-br/android-integration). *GOOGLE_SENDER_ID* é encontrado como parte das etapas para configurar [as Notificações Push do Android](/documentation/docs/pt-br/android-push-notifications). O ID do remetente também pode ser omitido se não for utilizado por notificações push. 1. Caso seu projeto Xtremepush esteja provisionado na região dos EUA, adicione o seguinte código ao inicializar o PushConnector antes da chamada para `.create(this)`: ```java .setServerUrl("https://sdk.us.xtremepush.com") ``` 2. Caso seu projeto seja provisionado na Região dos EUA ou em uma nuvem privada, além de definir a URL do servidor, você também precisará implementar o Pin de Chave Pública. Para isso: ```Java new PushConnector.Builder(XPUSH_APP_KEY, GOOGLE_PROJECT_NUMBER)        ...        .setServerExpectedPublicKey()        .create(this); ``` 1. a. Você pode usar o seguinte para recuperar a chave pública do Terminal: ```OpenSSL openssl s_client -connect :443 -servername /dev/null \ | openssl x509 -pubkey -noout \ | openssl pkey -pubin -outform DER \ | xxd -p -c 256 ``` 2. b. Então, ao inicializar XP no PushConnector.builder, use: 3. Por fim, em cada uma de suas Atividades, inclua uma referência ao nosso objeto PushConnector: ```java import static ie.imobile.extremepush.PushConnector.mPushConnector; ``` > [!TIP] > Certifique-se de definir o ID do usuário > > Recomenda-se que, nesta fase, você use nosso método SDK para definir IDs de usuário, seguindo nosso [guia dedicado](/documentation/docs/pt-br/set-user-id) para garantir que os dispositivos possam ser associados e direcionados em suas campanhas por seu próprio identificador único. ## Orientação Se você estiver lidando manualmente com mudanças de orientação e estiver sobrescrevendo o `OnConfigurationChanged` método, também será necessário adicionar outro callback PushConnector a cada atividade que substitua o `OnConfigurationChanged` método. ```java @Override public void onConfigurationChanged(Configuration newConfig) {    super.onConfigurationChanged(newConfig);    mPushConnector.onRotation(this); } ``` ## Configuração do Proguard Se você está usando o Proguard no seu app para minificar, otimizar, ofuscar etc., pode adicionar as seguintes configurações ao seu arquivo de configuração para garantir que o Xtremepush continue funcionando como esperado: ```Text # Gson uses generic type information stored in a class file when working with fields. Proguard # removes such information by default, so configure it to keep all of it. -keepattributes Signature # For using GSON @Expose annotation -keepattributes *Annotation* # Application classes that will be serialized/deserialized over Gson #-keep class com.google.gson.examples.android.model.** { *; } -keep class ie.imobile.extremepush.api.model.** { *; } # Recommended settings for other dependencies -keep class com.loopj.android.** { *; } -keep interface com.loopj.android.** { *; } -keepclassmembers class ** { @com.squareup.otto.Subscribe public *; @com.squareup.otto.Produce public *; } # Required for inapp and inbox functionality -keepclassmembers class * { @android.webkit.JavascriptInterface ; } # Required for inbox functionality -keepattributes JavascriptInterface -keep public class ie.imobile.extremepush.ui.InboxActivity$InboxInterface -keep public class * implements ie.imobile.extremepush.ui.InboxActivity$InboxInterface -keepclassmembers class ie.imobile.extremepush.ui.InboxActivity$InboxInterface { ; } # Required if building your app with Android 23 or lower -dontwarn ie.imobile.extremepush.ui.PopupDialog -dontwarn ie.imobile.extremepush.ui.WebViewActivity ``` ## Recuperando seu ID Xtremepush Se seu dispositivo estiver registrando com sucesso na plataforma, você deve conseguir recuperar seu ID Xtremepush. Isso pode ser feito chamando o `getDeviceInfo()` método no seu PushConnector da seguinte forma: ```java mPushConnector.getDeviceInfo() ``` Esse método retorna um mapa que contém o ID de registro de mensagens na nuvem do seu dispositivo e seu ID de dispositivo obtido do Xtremepush. Se seu dispositivo não recebeu um ID, então ele não foi registrado com sucesso e há um problema com sua integração. Se você conseguir recuperar o ID, ele pode ser usado para identificar seu dispositivo na plataforma e enviar uma notificação push apenas para esse dispositivo. ## Depuração Se você estiver depurando seu app, pode ativar os logs de depuração do Xtremepush adicionando o seguinte ao PushConnector.builder: ```java .turnOnDebugLogs(true) ``` > [!WARNING] > Os logs de depuração podem desacelerar seu app e devem ser desligados antes de lançar o app. ## Excluindo certas atividades da conexão com o Xtremepush Se você está integrando o Xtremepush em nível de aplicação, mas prefere que certos Atividades não criem um objeto PushConnector (por exemplo, você não quer que sua tela de abertura envie o `onSessionStartEvent`, quer que ele seja enviado na Atividade seguinte), pode usar o seguinte método: ```java PushConnector.addToExclusionList(ClassName.class.getSimpleName()); ```