---
title: "在 Android SDK 中获取旧版付费墙编辑工具付费墙"
description: "使用 Adapty SDK 在 Android 应用中获取旧版 PB 付费墙。"
---

在 Adapty 看板中使用付费墙编辑工具[为付费墙设计好视觉效果](adapty-paywall-builder-legacy)后，您可以在 Android 应用中展示该付费墙。此流程的第一步是获取与版位关联的付费墙及其视图配置，具体如下所述。

:::warning

本指南**仅适用于旧版付费墙编辑工具付费墙**，这类付费墙需要 SDK v2.x 或更早版本。对于使用不同版本付费墙编辑工具设计的付费墙以及远程配置付费墙，获取付费墙的流程有所不同。

- 如需获取**新版付费墙编辑工具付费墙**，请参阅[获取新版付费墙编辑工具付费墙及其配置](android-get-pb-paywalls)。
- 如需获取**远程配置付费墙**，请参阅[为远程配置付费墙获取付费墙和产品](fetch-paywalls-and-products-android)。

:::

<details>
   <summary>在 Android 应用中开始展示付费墙之前（点击展开）</summary>

   1. 在 Adapty 看板中[创建您的产品](create-product)。
2. 在 Adapty 看板中[创建付费墙并将产品添加到付费墙中](create-paywall)。
3. 在 Adapty 看板中[创建版位并将付费墙添加到版位中](create-placement)。
4. 在您的 Android 应用中[安装 Adapty SDK 和 AdaptyUI SDK](sdk-installation-android)。
</details>

## 获取使用付费墙编辑工具设计的付费墙 \{#fetch-paywall-designed-with-paywall-builder\}

如果您已[使用付费墙编辑工具设计了付费墙](adapty-paywall-builder-legacy)，则无需在 Android 应用代码中手动处理渲染逻辑来向用户展示。此类付费墙同时包含展示内容和展示方式。不过，您仍需通过版位获取其 ID 及视图配置，然后在 Android 应用中进行展示。

为确保最佳性能，务必尽早获取付费墙及其[视图配置](#fetch-the-view-configuration-of-paywall-designed-using-paywall-builder)，以便在向用户展示前有足够的时间完成图片下载。

使用 `getPaywall` 方法获取付费墙：

```kotlin showLineNumbers

...

Adapty.getPaywall("YOUR_PLACEMENT_ID", locale = "en", loadTimeout = 10.seconds) { result ->
    when (result) {
        is AdaptyResult.Success -> {
            val paywall = result.value
            // the requested paywall
        }
        is AdaptyResult.Error -> {
            val error = result.error
            // handle the error
        }
    }
}
```

Java 示例：

```java showLineNumbers

...

Adapty.getPaywall("YOUR_PLACEMENT_ID", "en", TimeInterval.seconds(10), result -> {
    if (result instanceof AdaptyResult.Success) {
        AdaptyPaywall paywall = ((AdaptyResult.Success<AdaptyPaywall>) result).getValue();
        // the requested paywall
      
    } else if (result instanceof AdaptyResult.Error) {
        AdaptyError error = ((AdaptyResult.Error) result).getError();
        // handle the error
      
    }
});
```

| 参数 | 是否必填 | 说明 |
|---------|--------|-----------|
| **placementId** | 必填 | 目标[版位](placements)的标识符。该值为您在 Adapty 看板中创建版位时指定的值。 |
| **locale** | <p>可选</p><p>默认值：`en`</p> | <p>[付费墙本地化](add-paywall-locale-in-adapty-paywall-builder)的标识符。该参数应为语言代码，由一个或两个子标签组成，以连字符（**-**）分隔。第一个子标签表示语言，第二个子标签表示地区。</p><p></p><p>示例：`en` 表示英语，`pt-br` 表示巴西葡萄牙语。</p><p></p><p>有关语言区域代码及推荐使用方式的更多信息，请参阅[本地化与语言区域代码](localizations-and-locale-codes)。</p> |
| **loadTimeout** | 默认值：5 秒 | <p>该值限制此方法的超时时间。若达到超时时间，将返回缓存数据或本地备用数据。</p><p></p><p>请注意，在极少数情况下，此方法的超时时间可能略迟于 `loadTimeout` 中指定的值，因为该操作在底层可能包含多个不同的请求。</p><p></p><p>对于 Android：您可以使用扩展函数创建 `TimeInterval`（例如 `5.seconds`，其中 `.seconds` 来自 `import com.adapty.utils.seconds`），或使用 `TimeInterval.seconds(5)`。如需不设限制，请使用 `TimeInterval.INFINITE`。</p> |

**请勿硬编码产品 ID。** 唯一需要硬编码的 ID 是版位 ID。付费墙通过远程方式配置，因此产品数量和可用优惠随时可能发生变化。您的应用必须动态处理这些变化——如果付费墙今天返回两个产品，明天返回三个，则应全部展示，无需修改代码。

返回参数：

| 参数 | 说明 |
| :-------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Paywall | 一个 [`AdaptyPaywall`](https://android.adapty.io/adapty/com.adapty.models/-adapty-paywall/) 对象，包含产品 ID 列表、付费墙标识符、远程配置及其他若干属性。 |

## 获取使用付费墙编辑工具设计的付费墙的视图配置 \{#fetch-the-view-configuration-of-paywall-designed-using-paywall-builder\}

获取付费墙后，检查其是否包含 `viewConfiguration`，该字段表明付费墙是使用付费墙编辑工具创建的。这将指导您如何展示该付费墙。若存在 `viewConfiguration`，则将其视为付费墙编辑工具付费墙；若不存在，则[将其作为远程配置付费墙处理](present-remote-config-paywalls-android)。

使用 `getViewConfiguration` 方法加载视图配置。

```kotlin showLineNumbers
if (!paywall.hasViewConfiguration) {
    // use your custom logic
    return
}

AdaptyUI.getViewConfiguration(paywall) { result ->
    when(result) {
        is AdaptyResult.Success -> {
            val viewConfiguration = result.value
            // use loaded configuration
        }
        is AdaptyResult.Error -> {
            val error = result.error
            // handle the error
        }
    }
}
```