Integre o Huawei Push ao seu aplicativo mPaaS em três etapas: registre-se na Huawei, integre o HMS SDK e verifique a entrega.
Registrar no Huawei Push
No site Huawei Developers, crie uma conta de desenvolvedor e ative o serviço de push. Para obter instruções passo a passo, consulte Etapas para ativar o Huawei Push.
Integrar o Huawei Push
O Push SDK é compatível com o Huawei Mobile Services (HMS) 2 e o HMS 5. Escolha apenas uma versão, pois não é possível integrar ambas simultaneamente.
HMS 5 (recomendado): use esta versão para todas as novas integrações.
HMS 2 (legado): se estiver atualizando para o HMS 5, remova primeiro a configuração do
AndroidManifestdo HMS 2 antes de prosseguir.
Integrar o Huawei Push - versão HMS 5.x
-
Adicione o componente Push - HMS5 pelo mesmo método usado para adicionar o Push SDK. Para mais detalhes, consulte Adicionar o Push SDK.
NotaO componente Push - HMS5 contém apenas código adaptador e não inclui o HMS SDK. Adicione a dependência do HMS SDK separadamente, conforme descrito nas etapas a seguir.
No console Huawei AppGallery Connect, baixe o arquivo de configuração
agconnect-services.jsone coloque-o na pastaassetsdo projeto principal do seu aplicativo.-
No arquivo
build.gradledo nível raiz, adicione o repositório Maven do HMS SDK.allprojects { repositories { // Other repos are omitted. maven {url 'https://developer.huawei.com/repo/'} } } -
No arquivo
build.gradledo nível do aplicativo, adicione a dependência do HMS SDK.dependencies { implementation 'com.huawei.hms:push:5.0.2.300' }Para obter a versão mais recente do HMS SDK, consulte as Notas de atualização da versão do HMS SDK.
A versão atualmente compatível é a 5.0.2.300. Os SDKs dos fornecedores geralmente mantêm compatibilidade com versões anteriores, portanto você pode usar uma versão posterior. Se encontrar problemas de compatibilidade, entre no grupo 145930007362 do DingTalk para solicitar suporte.
-
Se sua compilação utilizar ofuscação, adicione as seguintes configurações:
Todos os tipos de conexão: adicione as Regras de ofuscação do Huawei Push.
Apenas tipo de conexão AAR: também adicione as regras de ofuscação do mPaaS.
Integrar o Huawei Push - versão HMS 2.x
Adicione o componente Push - Huawei 2 seguindo o mesmo método usado para adicionar o Push SDK. Para mais detalhes, consulte Adicionar o SDK. A versão integrada do HMS 2 SDK é a 2.5.2.201.
-
Configure o arquivo
AndroidManifest.xml. Para integração baseada em componentes, adicione esta configuração no projeto Portal. Substitua o valor decom.huawei.hms.client.appidpelo ID real do seu aplicativo Huawei.<activity android:name="com.huawei.hms.activity.BridgeActivity" android:configChanges="orientation|locale|screenSize|layoutDirection|fontScale" android:excludeFromRecents="true" android:exported="false" android:hardwareAccelerated="true" android:theme="@android:style/Theme.Translucent"> <meta-data android:name="hwc-theme" android:value="androidhwext:style/Theme.Emui.Translucent" /> </activity> <!--To prevent crashes on earlier DEX versions, dynamically enable the provider. Set enabled to false.--> <provider android:name="com.huawei.hms.update.provider.UpdateProvider" android:authorities="${applicationId}.hms.update.provider" android:exported="false" android:enabled="false" android:grantUriPermissions="true"> </provider> <!-- Replace "appid" in the value with the actual app ID from the service details of your application on the Huawei Developers website. Note: Keep the backslash (\) and the space in the value.--> <meta-data android:name="com.huawei.hms.client.appid" android:value="\ your huawei appId" /> <receiver android:name="com.huawei.hms.support.api.push.PushEventReceiver" android:exported="true" > <intent-filter> <!-- Receives notification messages from the channel. Compatible with earlier PUSH versions. --> <action android:name="com.huawei.intent.action.PUSH" /> </intent-filter> </receiver> <receiver android:name="com.alipay.pushsdk.thirdparty.huawei.HuaweiPushReceiver" android:exported="true" android:process=":push"> <intent-filter> <!-- Required. Used to receive the TOKEN. --> <action android:name="com.huawei.android.push.intent.REGISTRATION" /> <!-- Required. Used to receive messages. --> <action android:name="com.huawei.android.push.intent.RECEIVE" /> <!-- Optional. Triggers the onEvent callback when a notification or a button in a notification is clicked. --> <action android:name="com.huawei.android.push.intent.CLICK" /> <!-- Optional. Checks if the PUSH channel is connected. Not required if you do not need to check the connection. --> <action android:name="com.huawei.intent.action.PUSH_STATE" /> </intent-filter> </receiver> -
Se a compilação utilizar ofuscação, aplique as configurações abaixo:
Tipo de conexão AAR: adicione as regras de ofuscação do mPaaS.
Demais tipos de conexão: nenhuma configuração adicional necessária.
Testar o Huawei Push
Inicie o aplicativo em um dispositivo Huawei e confirme se o método de inicialização de push foi chamado. Para mais detalhes, consulte Inicialização do Serviço de Push de Mensagens. O Push SDK obtém e reporta automaticamente o token do fornecedor Huawei Push.
-
Encerre o processo do aplicativo e envie uma mensagem de push de teste.
Se receber a mensagem, a integração do Huawei Push foi concluída com sucesso.
Caso não receba a mensagem, siga as etapas de solução de problemas abaixo.
Solucionar problemas de entrega de push
-
Verifique se a configuração da Huawei corresponde ao definido no backend do Huawei Push:
HMS 2: confirme se as entradas obrigatórias estão presentes no
AndroidManifest.xmle se o valor decom.huawei.hms.client.appidcorresponde ao ID do aplicativo no backend do Huawei Push.HMS 5: confirme se o arquivo
agconnect-services.jsonexiste e está no local correto.
Confirme se o canal Huawei está ativado no console mPaaS e se suas configurações correspondem às do backend do Huawei Push. Para mais detalhes, consulte Configuração de Canal.
-
Analise o logcat para um diagnóstico mais detalhado:
-
No processo de push, filtre por
mPush.PushProxyFactory. Confirme a presença de uma das seguintes entradas de log:D/mPush.PushProxyFactory: found proxy com.mpaas.push.external.hms.Creator (HMS2) D/mPush.PushProxyFactory: found proxy com.mpaas.push.external.hms5.Creator (HMS5)Se nenhuma dessas entradas aparecer, o componente Push - Huawei 2 ou Push - HMS5 não foi adicionado corretamente. Revise a configuração do componente.
No processo principal, filtre por
mHMSpara confirmar se o token do fornecedor Huawei Push foi obtido. Se o log exibirget token failed, a obtenção do token falhou. Consulte o código de erro em Códigos de erro do Huawei Push.-
No processo principal, filtre por
report channel tokenpara confirmar se o token do fornecedor foi reportado. Se visualizar:report channel token error: xxxxO reporte do token falhou. Verifique se o
base64Codeno arquivo de configuração do mPaaS não está vazio e se a assinatura do APK enviada ao obter o arquivo de configuração corresponde à assinatura atual do aplicativo.
-
Outros problemas
Requisitos de versão para Emotion UI e Huawei Mobile Services
Os dispositivos Huawei devem atender aos requisitos mínimos de versão do Emotion UI (EMUI) e do Huawei Mobile Services (HMS) para receber mensagens de push. Para consultar todos os requisitos, veja Condições para dispositivos receberem mensagens de push da Huawei.
Impossibilidade de imprimir logs em um dispositivo Huawei
No discador do telefone, insira ##2846579## para abrir o Project Menu. Acesse Background settings > LOG settings e selecione AP Log. Reinicie o dispositivo para que as alterações entrem em vigor.