---
title: Android
description: Integre a jornada Human Token no seu aplicativo Android usando Custom Tabs — leve, seguro e sem necessidade de WebView.
canonical: https://developer.unico.io/pt-BR/human-token/integrations/app/android
locale: pt-BR
generated_by: markdown-export
---

- [/pt-BR/](/pt-BR/)
- [Integrações](/pt-BR/human-token/integrations)
- App
- Android

**Nesta páginaAndroidIntegre a jornada Human Token no seu aplicativo Android usando Custom Tabs.

Custom Tabs iniciam a jornada Human Token em uma aba do navegador dentro do seu aplicativo. Quando a jornada termina, o navegador redireciona para o seu esquema de URL personalizado e o seu aplicativo o intercepta.
### Pré-requisitos​

Android 8 (API 26) ou posterior
`androidx.browser:browser:1.5.0`
Um esquema de URL exclusivo para o seu aplicativo (ex.: `myapp`)

### Passo 1: Adicionar a dependência​

No seu `build.gradle`:
```
implementation("androidx.browser:browser:1.5.0")
```

### Passo 2: Definir o esquema de URL​

Escolha um esquema exclusivo (ex.: `myapp`). Ele é usado como `callbackUri` ao criar o processo:
```
callbackUri: myapp://callback
```

### Passo 3: Criar a activity​

```
import android.content.Intentimport android.net.Uriimport android.os.Bundleimport androidx.appcompat.app.AppCompatActivityimport androidx.browser.customtabs.CustomTabsIntentclass HumanTokenActivity : AppCompatActivity() {    override fun onCreate(savedInstanceState: Bundle?) {        super.onCreate(savedInstanceState)        val url = intent.getStringExtra(EXTRA_PROCESS_URL) ?: return finish()        CustomTabsIntent.Builder()            .build()            .launchUrl(this, Uri.parse(url))    }    override fun onNewIntent(intent: Intent) {        super.onNewIntent(intent)        intent.data?.let { uri ->            if (uri.scheme == "myapp") {                // Journey completed — send processId to your backend                val processId = uri.getQueryParameter("id")                handleResult(processId)            }        }    }    private fun handleResult(processId: String?) {        // Fetch the result from your backend via Get Process        finish()    }    companion object {        const val EXTRA_PROCESS_URL = "process_url"    }}
```

### Passo 4: Configurar AndroidManifest.xml​

```
<uses-feature android:name="android.hardware.camera" android:required="false" /><uses-permission android:name="android.permission.CAMERA" /><activity    android:name=".HumanTokenActivity"    android:launchMode="singleTop"    android:exported="true">    <intent-filter>        <action android:name="android.intent.action.VIEW" />        <category android:name="android.intent.category.DEFAULT" />        <category android:name="android.intent.category.BROWSABLE" />        <data android:scheme="myapp" android:host="callback" />    </intent-filter></activity>
```

`singleTop` garante que o Android chame `onNewIntent()` na activity existente em vez de criar uma nova.
### Passo 5: Iniciar a jornada​

```
val intent = Intent(this, HumanTokenActivity::class.java)    .putExtra(HumanTokenActivity.EXTRA_PROCESS_URL, processLink)startActivity(intent)
```

### Resumo dos arquivos​

ArquivoFinalidade`build.gradle`Dependência `androidx.browser``HumanTokenActivity.kt`Lançamento do Custom Tabs + tratamento de redirecionamento`AndroidManifest.xml`Filtro de intent para o seu esquema de URLÚltima atualização em 21 de out. de 2026**