---
title: 用户旅程
canonical: https://developer.unico.io/zh-CN/developers/sdks-and-tools/android/capture-flow/user-journeys
locale: zh-CN
generated_by: markdown-export
---

- [/zh-CN/](/zh-CN/)
- [SDK 与工具](/zh-CN/developers/sdks-and-tools/overview)
- [Android SDK](/zh-CN/developers/sdks-and-tools/android/requirements)
- 采集流程
- 用户旅程

# 用户旅程

用户旅程是由 SDK 结合所配置的流程编排的多步骤采集会话。例如，包含 活体检测 + 风险评分 + 文档采集与重用 + 电子签名的流程将在单个会话中依次执行自拍、文件采集和签名。

产品可用的旅程取决于为您的集成配置的流程。请参阅[产品](/zh-CN/products)，了解产品 → 流程 → 能力的完整映射关系。

工作原理
SDK 的处理流程如下：

1. 读取初始化时提供的流程配置。
2. 编排流程所需的采集序列（自拍、文件、签名）。
3. 当旅程完成时，通过 `onSuccess` 返回 `processId`。对于自拍步骤，图像数据（`base64` / `encrypted`）也通过 `onSuccessSelfie` 返回。文件和签名捕获由SDK在内部处理——不会向客户端暴露每步的工件。

整个编排过程完全由 SDK 处理——您无需在应用中自行实现步骤序列。

启动用户旅程
**步骤 1** — 实现 `AcessoBioListener``AcessoBioListener` 负责处理 SDK 生命周期回调。请实现以下四个必需方法：

| 方法 | 调用时机 |
| --- | --- |
| `onErrorAcessoBio(errorBio)` | SDK 操作过程中发生错误 |
| `onUserClosedCameraManually()` | 用户手动关闭了摄像头 |
| `onSystemClosedCameraTimeoutSession()` | 已达到会话时间限制 — 请参阅[会话限制](/zh-CN/developers/sdks-and-tools/android/requirements#session-limits) |
| `onSystemChangedTypeCameraTimeoutFaceInference()` | 已达到人脸推断时间限制 — 切换为手动拍摄 — 请参阅[会话限制](/zh-CN/developers/sdks-and-tools/android/requirements#session-limits) |

- Kotlin
- Java

```
val callback = object : AcessoBioListener {**  override fun onErrorAcessoBio(errorBio: ErrorBio?) { }  override fun onUserClosedCameraManually() { }  override fun onSystemClosedCameraTimeoutSession() { }  override fun onSystemChangedTypeCameraTimeoutFaceInference() { }}
```

```
AcessoBioListener callback = new AcessoBioListener() {  @Override  public void onErrorAcessoBio(ErrorBio errorBio) { }  @Override  public void onUserClosedCameraManually() { }  @Override  public void onSystemClosedCameraTimeoutSession() { }  @Override  public void onSystemChangedTypeCameraTimeoutFaceInference() { }};
```

**步骤 2** — 实现 `iAcessoBioSelfie``iAcessoBioSelfie` 处理旅程采集结果的回调：方法描述`onSuccessSelfie(result)`图像采集成功——返回 `ResultCamera`，用于后续 REST API 调用`onSuccess(result)`旅程成功完成——返回含 `processId` 的 `SuccessResult`，用于查询验证结果`onErrorSelfie(errorBio)`采集失败——返回含错误详情的 `ErrorBio`KotlinJava```
val cameraListener: iAcessoBioSelfie = object : iAcessoBioSelfie {  override fun onSuccessSelfie(result: ResultCamera?) { }  override fun onSuccess(result: SuccessResult) { }  override fun onErrorSelfie(errorBio: ErrorBio?) { }}
```

```
iAcessoBioSelfie cameraListener = new iAcessoBioSelfie() {  @Override  public void onSuccessSelfie(ResultCamera result) { }  @Override  public void onSuccess(SuccessResult result) { }  @Override  public void onErrorSelfie(ErrorBio errorBio) { }};
```

**步骤 3** — 调用 `prepareCamera`完成 `unicoCheckCamera` 初始化并实现两个监听器后，调用 `prepareCamera`，传入 SDK 配置、`CameraListener` 以及您的 `webAppToken`：webAppToken`webAppToken` 是在后端调用 `POST /client/v1/process` 创建流程时，响应中返回的 `process.webAppToken` 字段。请参阅创建流程。
`onCameraReady` — 摄像头已就绪；调用 `open`，传入 `cameraListener` 和您的 `webAppToken`。
`onCameraFailed` — 摄像头准备失败；处理错误信息。
KotlinJava```
unicoCheckCamera.prepareCamera(unicoConfig, object : CameraListener {  override fun onCameraReady(cameraOpener: UnicoCheckCameraOpener.Camera?) {    cameraOpener?.open(cameraListener, "your_web_app_token")  }  override fun onCameraFailed(message: String?) {    Log.e(TAG, message)  }})
```

```
unicoCheckCamera.prepareCamera(unicoConfig, new CameraListener() {  @Override  public void onCameraReady(UnicoCheckCameraOpener.Camera cameraOpener) {    cameraOpener.open(cameraListener, "your_web_app_token");  }  @Override  public void onCameraFailed(String message) {    Log.e(TAG, message);  }});
```

有关完整的结果处理说明，请参阅[接收结果](/zh-CN/developers/sdks-and-tools/android/capture-flow/receiving-the-result)。最后更新 于 2026年10月8日**