---
title: Android
description: Custom Tabs를 사용하여 Android 앱에 Human Token Journey를 통합하세요 — 가볍고 안전하며 WebView가 필요 없습니다.
canonical: https://developer.unico.io/ko/human-token/integrations/app/android
locale: ko
generated_by: markdown-export
---

- [/ko/](/ko/)
- [통합](/ko/human-token/integrations)
- 앱
- Android

**이 페이지에서AndroidCustom Tabs를 사용하여 Android 앱에 Human Token Journey를 통합하세요.

Custom Tabs는 앱 내부의 브라우저 탭에서 Human Token Journey를 실행합니다. 여정이 완료되면 브라우저가 사용자 지정 URL 스킴으로 리디렉션하고 앱이 이를 가로챕니다.
### 사전 요구 사항​

Android 8 (API 26) 이상
`androidx.browser:browser:1.5.0`
앱의 고유한 URL 스킴 (예: `myapp`)

### 단계 1: 의존성 추가​

`build.gradle`에서:
```
implementation("androidx.browser:browser:1.5.0")
```

### 단계 2: URL 스킴 정의​

고유한 스킴을 선택하세요 (예: `myapp`). 프로세스 생성 시 `callbackUri`로 사용됩니다:
```
callbackUri: myapp://callback
```

### 단계 3: 액티비티 생성​

```
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"    }}
```

### 단계 4: 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`은 Android가 새 액티비티를 생성하는 대신 기존 액티비티에서 `onNewIntent()`를 호출하도록 보장합니다.
### 단계 5: 여정 시작​

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

### 파일 요약​

파일목적`build.gradle``androidx.browser` 의존성`HumanTokenActivity.kt`Custom Tabs 실행 + 리디렉션 처리`AndroidManifest.xml`URL 스킴용 Intent 필터마지막 업데이트 2026년 10월 21일**에