Todos os produtos
Search
Central de documentação

Mobile Platform as a Service:Guia avançado

Última atualização: Jun 28, 2026

Configure uma lista de permissões de atualização, verifique novas versões e solicite a atualização aos usuários após integrar o SDK.

Definir uma lista de permissões

Defina o ID de usuário da lista de permissões:

MPLogger.setUserId("your_whitelist_id");

Verificar novas versões

  • Verifique se há uma nova versão e exiba uma notificação pop-up:

    Nota

    Este método exibe um pop-up de atualização rápida sem lógica de atualização forçada. Para forçar a atualização, implemente uma atualização personalizada.

      MPUpgrade mMPUpgrade = new MPUpgrade();
      mMPUpgrade.fastCheckNewVersion(activity, drawable);
  • Verifique se há uma nova versão e retorne apenas o resultado:

      MPUpgrade mMPUpgrade = new MPUpgrade();
      // Synchronous method. Call it in a subthread.
      int result = mMPUpgrade.fastCheckHasNewVersion();
      if (result == UpgradeConstants.HAS_NEW_VERSION) {
        // A new version is available.
      } else if (result == UpgradeConstants.HAS_NO_NEW_VERSION) {
        // No new version is available.
      } else if (result == UpgradeConstants.HAS_SOME_ERROR) {
        // An error occurred.
      }

Obter informações detalhadas sobre a atualização

Chame fastGetClientUpgradeRes para obter detalhes da atualização:

MPUpgrade mMPUpgrade = new MPUpgrade();
// Synchronous method. Call it in a subthread.
ClientUpgradeRes clientUpgradeRes = mMPUpgrade.fastGetClientUpgradeRes();

A resposta inclui o número da nova versão, a URL de download e outros parâmetros:

  • downloadURL: URL de download.

  • guideMemo: informações da atualização.

  • newestVersion: número da versão mais recente.

  • resultStatus: modo de atualização.

    • 202: lembrete único.

    • 204: múltiplos lembretes.

    • 203/206: atualização forçada.

  • fileSize: tamanho do arquivo de download.

Outras verificações personalizadas

Para mais opções de personalização, consulte os exemplos abaixo:

  • Implemente a interface MPaaSCheckCallBack para tratar solicitações do SDK de atualização, como exibir uma caixa de diálogo:

      MPUpgrade mMPUpgrade = new MPUpgrade();
      mMPUpgrade.setUpgradeCallback(new MPaaSCheckVersionService.MPaaSCheckCallBack() {
           .........
      });
  • Use o método MPUpgrade.checkNewVersion para verificar informações de atualização.

    A classe MPUpgrade encapsula a chamada a MPaaSCheckVersionService. Também é possível criar uma implementação personalizada. Para mais informações sobre MPaaSCheckVersionService e MPaaSCheckCallBack, consulte Referência da API.

Personalizar a pasta de download dos pacotes de instalação (compatível com as versões 10.1.60 e posteriores)

Configure a pasta de download:

File dir = getApplicationContext().getExternalFilesDir("custom_folder");
MPUpgrade mpUpgrade = new MPUpgrade();
mpUpgrade.setDownloadPath(dir.getAbsolutePath());

Adicione também a seguinte configuração ao arquivo file_path.xml:

// external-files-path corresponds to the folder of getExternalFilesDir.
// Use the element that corresponds to your custom folder. If you are unsure which to choose, search for "Adapt to File Provider".
<external-files-path
  name="download"
  path="custom_folder" />

Personalizar notificações

MPUpgrade mMPUpgrade = new MPUpgrade();
mMPUpgrade.setShowDefaultNotification(false);// Set to true to show the default download notification, or false to use a custom download notification.

mMPUpgrade.update(clientUpgradeRes, new UpgradeDownloadCallback() {
    @Override
    public void onLoadNotificationConfig(UpgradeDownloadRequest upgradeDownloadRequest) {
        
    }

    @Override
    public void onPrepare(UpgradeDownloadRequest upgradeDownloadRequest) {
        // Create a custom download notification.
    }

    @Override
    public void onProgress(UpgradeDownloadRequest upgradeDownloadRequest, int i) {
        // Update the progress of the notification progress bar chart.
    }

    @Override
    public void onCancel(UpgradeDownloadRequest upgradeDownloadRequest) {

    }

    @Override
    public void onFinish(UpgradeDownloadRequest upgradeDownloadRequest, String s) {

    }

    @Override
    public void onFailed(UpgradeDownloadRequest upgradeDownloadRequest, int i, String s) {

    }
});

Lidar com falhas na análise de pacotes após atualização forçada

Em algumas ROMs, pode ocorrer falha na análise do pacote após uma atualização forçada, pois certas ROMs acessam o processo do aplicativo durante a instalação. A atualização forçada encerra esse processo e causa a falha. Esse comportamento personalizado da ROM não está em conformidade com o padrão do Android. Para resolver o problema, defina UpgradeForceExitCallback e configure needForceExit para retornar false.

  1. Implemente o callback.

     public class UpgradeForceExitCallbackImpl implements UpgradeForceExitCallback {
         @Override
         public boolean needForceExit(boolean forceExitApp, MicroApplicationContext context) {
             // If you return false, the process is not forcibly killed, which prevents package parsing failures. If you return true, you must handle the process exit, and the doForceExit method below is called.
             return false;
         }
         @Override
         public void doForceExit(boolean forceExitApp, MicroApplicationContext context) {
             // To shut down the process, needForceExit must return true. Then, shut down the process within this method.
         }
     }
  2. Defina o callback.

     MPUpgrade mpUpgrade = new MPUpgrade();
     mpUpgrade.setForceExitCallback(new UpgradeForceExitCallbackImpl());
    Importante
    • Use a mesma instância de MPUpgrade para definir o callback e solicitar a atualização.

    • Esse callback evita falhas na análise de pacotes, mas o componente de atualização deixa de encerrar automaticamente o processo. Se o usuário retornar ao aplicativo em vez de tocar em Install, exiba uma sobreposição pop-up não cancelável para impedir que a atualização forçada seja ignorada.