Use o Xtremepush SDK para integrar seu app Android na plataforma
No seu arquivo Application.java importe a biblioteca:
import ie.imobile.extremepush.PushConnector;No método onCreate do seu arquivo Application.java, você deve adicionar o seguinte:
public class YOUR_APPLICATION extends Application {
public void onCreate() {
super.onCreate();
...
new PushConnector.Builder("XPUSH_APP_KEY", "GOOGLE_SENDER_ID")
.create(this);
}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. GOOGLE_SENDER_ID é encontrado como parte das etapas para configurar as Notificações Push do Android. O ID do remetente também pode ser omitido se não for utilizado por notificações push.
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):.setServerUrl("https://sdk.us.xtremepush.com")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:
a. Você pode usar o seguinte para recuperar a chave pública do Terminal:
openssl s_client -connect <serverURL>:443 -servername <serverURL> </dev/null 2>/dev/null \ | openssl x509 -pubkey -noout \ | openssl pkey -pubin -outform DER \ | xxd -p -c 256b. Então, ao inicializar XP no PushConnector.builder, use:
new PushConnector.Builder(XPUSH_APP_KEY, GOOGLE_PROJECT_NUMBER) ... .setServerExpectedPublicKey(<THE PUBLIC KEY>) .create(this);Por fim, em cada uma de suas Atividades, inclua uma referência ao nosso objeto PushConnector:
import static ie.imobile.extremepush.PushConnector.mPushConnector;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 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.
@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:
# 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 <methods>;
}
# 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 {
<methods>;
}
# Required if building your app with Android 23 or lower
-dontwarn ie.imobile.extremepush.ui.PopupDialog
-dontwarn ie.imobile.extremepush.ui.WebViewActivityRecuperando 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:
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:
.turnOnDebugLogs(true)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:
PushConnector.addToExclusionList(ClassName.class.getSimpleName());