Integre o componente Mobile Push Service (MPS) ao seu cliente Android. O MPS oferece três métodos de integração: AAR nativo, mPaaS Inside e baseado em componentes (Portal & Bundle).
Pré-requisitos
Antes de começar, verifique se você tem:
-
mPaaS integrado ao projeto por um dos métodos suportados:
AAR nativo: Adicionar o mPaaS ao seu projeto adicionar o mPaaS ao seu projeto
mPaaS Inside: Conclua o processo de integração processo de integração do mPaaS Inside
Baseado em componentes: Conclua o processo de integração processo de integração baseado em componentes
Arquivo
.configbaixado do console do mPaaS. Para obter instruções, consulte Etapa 3 Adicionar o arquivo de configuração ao seu projeto Adicionar o arquivo de configuração ao seu projeto-
Baseline 10.1.68.32 ou posterior. A API
MPPushMsgServiceAdapterexige a baseline 10.1.68.32+. Se sua baseline for anterior, atualize-a seguindo o guia de atualização do mPaaS 10.1.68 guia de atualização do mPaaSNotaA API antiga
AliPushRcvServiceainda tem suporte. Para consultar a documentação de versões anteriores, baixe o PDF.
Procedimento
-
Adicione a dependência do SDK de Push e configure o
AndroidManifest.xml.-
Adicione a dependência do SDK. As etapas variam conforme o método de integração:
AAR nativo: Use o Component Management (AAR) no projeto para instale o componente Mobile Push (PUSH). Consulte Gerencie dependências de componentes (AAR nativo)Gerencie dependências de componentes (AAR nativo).
mPaaS Inside: Use o Component Management no projeto para instale o componente Mobile Push (PUSH). Consulte Gerencie dependências de componentes Adicionar dependências de componentes.
Baseado em componentes: Nos projetos Portal e Bundle, use o Component Management para instale o componente Mobile Push (PUSH). Consulte Processo de integração Adicionar dependências de componentes.
-
Inclua a configuração do
AndroidManifestadicionando as seguintes entradas aoAndroidManifest.xml:NotaNa integração baseada em componentes, adicione a configuração do
AndroidManifestno projeto Portal, não nos projetos Bundle individuais.<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <service android:name="com.alipay.pushsdk.push.NotificationService" android:enabled="true" android:exported="false" android:label="NotificationService" android:process=":push"> <intent-filter> <action android:name="${applicationId}.push.action.START_PUSHSERVICE" /> </intent-filter> </service> <receiver android:name="com.alipay.pushsdk.BroadcastActionReceiver" android:enabled="true" android:exported="true" android:process=":push"> <intent-filter android:priority="2147483647"> <action android:name="android.intent.action.BOOT_COMPLETED" /> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> <action android:name="android.intent.action.USER_PRESENT" /> <action android:name="android.intent.action.ACTION_POWER_CONNECTED" /> </intent-filter> </receiver> -
O SDK de Push inclui um mecanismo de keepalive integrado para melhorar as taxas de entrega de mensagens. O
com.alipay.pushsdk.BroadcastActionReceivermonitora broadcasts do sistema para iniciar o processo de push e o reinicia automaticamente se ele for encerrado. Os quatro listeners de broadcast vêm ativados por padrão. Remova-os ou desative-os conforme necessário:-
Para parar de monitorar broadcasts de inicialização do dispositivo, remova:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <action android:name="android.intent.action.BOOT_COMPLETED" /> -
Para parar de monitorar broadcasts de alteração de conectividade de rede, remova:
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> -
Para parar de monitorar broadcasts de presença do usuário, remova:
<action android:name="android.intent.action.USER_PRESENT" /> -
Para parar de monitorar broadcasts de conexão de energia, remova:
<action android:name="android.intent.action.ACTION_POWER_CONNECTED" /> Para desativar os quatro listeners de broadcast simultaneamente, defina o atributo
android:enableddocom.alipay.pushsdk.BroadcastActionReceivercomofalse.-
Para impedir que o processo de push seja reiniciado automaticamente após o encerramento, adicione o seguinte sob o nó
application:<meta-data android:name="force.kill.push" android:value="on" />NotaEsta configuração requer a baseline 10.2.3.21 ou posterior.
-
-
-
Inicialize o serviço de push. A inicialização estabelece uma conexão persistente entre o cliente e o gateway do Mobile Push pelo canal próprio. O SDK de Push gerencia essa conexão automaticamente após a inicialização.
As etapas de inicialização variam conforme o método de integração:
-
AAR nativo
-
Se você já chamou o método de inicialização do mPaaS (consulte Inicializar o mPaaS) na
Application, chameMPPush.init()apósMP.init():MPPush.init(this); -
Caso já tenha chamado o método de inicialização do mPaaS na
Application, chameMPPush.init()depois deMP.init():MPPush.init(this); -
Se ainda não tiver chamado o método de inicialização do mPaaS, chame setup e init na
Application:MPPush.setup(this); // One-time setup before init MPPush.init(this); // Starts the push service
-
-
Baseado em componentes
Chame
MPPush.init()no métodopostInitdeLauncherApplicationAgentouLauncherActivityAgent:MPPush.init(context);
-
-
Receba o token do dispositivo pelo canal próprio. Crie um serviço que estenda
MPPushMsgServiceAdaptere sobrescrevaonTokenReceive:public class MyPushMsgService extends MPPushMsgServiceAdapter { /** * Called when the self-built channel issues a token for this device. * Store or upload this token to your server to enable device-targeted pushes. * * @param token Unique identifier for this device on the self-built channel */ @Override protected void onTokenReceive(String token) { Log.d("MyPushMsgService", "Token received: " + token); } }Declare este serviço no
AndroidManifest.xml:<service android:name="com.mpaas.demo.push.MyPushMsgService" android:exported="false"> <intent-filter> <action android:name="${applicationId}.push.action.MESSAGE_RECEIVED" /> <action android:name="${applicationId}.push.action.REGISTRATION_ID" /> <category android:name="${applicationId}" /> </intent-filter> </service>Após esta etapa, envie mensagens para dispositivos específicos pelo console usando o token recebido em
onTokenReceivecomo identificador do dispositivo. -
Vincule um ID de usuário ao token. O ID de usuário é definido pelo desenvolvedor e pode ser qualquer identificador do seu sistema de usuários, como nome de conta ou número de telefone, desde que corresponda a um único usuário.
Depois de receber o token, vincule-o a um ID de usuário:
String userId = "custom_user_id"; ResultPbPB bindResult = MPPush.bind(context, userId, token); Log.d("MyPushMsgService", "Bind " + (bindResult.success ? "succeeded" : "failed: " + bindResult.code));Se já tiver chamado
MPLogger.setUserId()para definir um ID de usuário, omita o parâmetro de ID de usuário:MPLogger.setUserId("custom_user_id"); ResultPbPB bindResult = MPPush.bind(context, token);Para desvincular um ID de usuário (por exemplo, ao fazer logout), chame:
ResultPbPB unbindResult = MPPush.unbind(context, userId, token); ResultPbPB unbindResult = MPPush.unbind(context, token);Após esta etapa, envie mensagens para usuários específicos pelo console usando seu ID de usuário personalizado.
-
(Opcional) Vincule um número de celular ao token para ative notificações push entregues via SMS.
ImportanteO serviço suplementar de SMS está disponível apenas na região China (Hangzhou) para serviços não financeiros.
É possível vincular um ID de usuário e um número de celular ao mesmo token. Após vincular o número de telefone, o usuário recebe as notificações push como mensagens de texto nesse número:
String userId = "custom_user_id"; String phoneNumber = "138xxxxxxxx"; ResultPbPB bindResult = MPPush.bind(context, userId, token, phoneNumber); Log.d("MyPushMsgService", "Bind " + (bindResult.success ? "succeeded" : "failed: " + bindResult.code));
Tópicos relacionados
Para aumentar as taxas de entrega de mensagens, integre canais de push dos fabricantes (Huawei, Xiaomi, OPPO e vivo). Consulte Integrar canais de terceiros.
Por padrão, tocar em uma notificação abre uma página da web. Para redirecionar o usuário a uma página interna do aplicativo via deep link ou personalizar o comportamento do toque na notificação, consulte Lidar com cliques em notificações.
Para outros recursos, consulte Recursos avançados.
Exemplo de código
Baixe o pacote de código de exemplo: android-push no GitHub.
Próximos passos
Após concluir a integração, use a API RESTful no servidor para enviar mensagens aos dispositivos e usuários. Consulte Configure o lado do servidor.