# Gerenciar a Disponibilidade do Aplicativo

Este guia mostra como verificar se o aplicativo Get Mini está instalado no dispositivo do usuário. Você aprenderá como capturar a exceção quando o aplicativo estiver ausente e redirecionar os usuários para a Google Play Store.

## Requisitos

Antes de seguir os passos, certifique-se de ter:

* **Aplicativo Android** com capacidade de iniciar Intents
* Acesso à **Google Play Store** no dispositivo

<Callout type="warning">

Sempre implemente essa verificação antes de tentar iniciar Intents de pagamento para fornecer uma melhor experiência ao usuário.

</Callout>

## Verificação de Disponibilidade do Aplicativo

Esta seção orienta você na implementação do tratamento de exceções para detectar quando o aplicativo Get Mini não está instalado e orientar os usuários a instalá-lo.

### Passo 1: Envolver a Inicialização do Intent em Try-Catch

Quando você tenta iniciar um Intent para o aplicativo Get Mini, o sistema Android lança uma `ActivityNotFoundException` se o aplicativo não estiver instalado. Envolva a sua chamada de inicialização do Intent em um bloco try-catch para lidar com esse cenário de forma adequada.

O código a seguir demonstra como capturar a exceção:

```java
String playStoreUrl = "[https://play.google.com/store/apps/details?id=es.android.redsys.Get](https://play.google.com/store/apps/details?id=es.android.redsys.Get) Mini.movil";

try {
    // Attempt to launch the Get Mini intent
    paymentLauncher.launch(intent);

} catch (ActivityNotFoundException e) {
    // Get Mini app is not installed
    showInstallDialog(playStoreUrl);
}
```

<Callout type="note">

Essa abordagem funciona tanto com o `startActivityForResult` quanto com a moderna API `ActivityResultLauncher`.

</Callout>

### Passo 2: Mostrar a Caixa de Diálogo de Instalação

Quando o aplicativo Get Mini não for encontrado, exiba uma caixa de diálogo que explique a situação e forneça uma opção para instalar o aplicativo a partir da Google Play Store.

```java
private void showInstallDialog(String playStoreUrl) {
    new AlertDialog.Builder(this)
        .setTitle("Get Mini Not Found")
        .setMessage("The Get Mini app must be installed to process payments.")
        .setPositiveButton("Install", (dialog, which) -> {
            // Open Play Store
            Intent storeIntent = new Intent(Intent.ACTION_VIEW);
            storeIntent.setData(Uri.parse(playStoreUrl));
            startActivity(storeIntent);
        })
        .setNegativeButton("Cancel", null)
        .show();
}
```

### Passo 3: Lidar com o Retorno da Play Store (Opcional)

Após o usuário retornar da Play Store, você pode querer verificar se ele instalou o aplicativo e tentar a transação novamente. Você pode implementar isso verificando a disponibilidade do aplicativo quando a sua Activity for retomada.

```java
@Override
protected void onResume() {
    super.onResume();

    // Check if user returned from Play Store and installed the app
    if (shouldRetryTransaction && isMposAppInstalled()) {
        retryTransaction();
    }
}

private boolean isMposAppInstalled() {
    Intent intent = new Intent("es.redsys.paysys.mPOSRedsys_PAYMENT_REQUEST");
    return getPackageManager().resolveActivity(intent, 0) != null;
}
```

### Próximos Passos

Agora que você sabe como gerenciar a disponibilidade do aplicativo, você pode:

* Revisar os [Pré-requisitos e configuração](/pt/get-mini/get-mini-app2app/first-steps/prerequisites-and-setup) para obter os requisitos do ambiente
* Aprender sobre [Processar um pagamento](https://docs.globalgetnet.com/pt/products/local-processor-spain/get-mini?doc=getmini-app2app-processing-a-payment) para implementar transações de pagamento
* Ler [Lidar com os resultados da transação](/pt/get-mini/get-mini-app2app/transaction-guides/response-handling/handle-transaction-results) para processar as respostas do Get Mini