# 更新指南

> 按照 Android 更新指南更新 Tapjoy SDK 版本，完成每个规定的步骤有助于避免集成错误或兼容性问题。

本指南介绍从一个 Offerwall SDK 版本更新到另一个版本时所需的步骤，建议您执行所有步骤以防止发生任何问题或冲突。

## 14.3.0##14.3.0

* 将所有 `Tapjoy.setDebugEnabled` 用例替换为 `Tapjoy.setLoggingLevel(TJLogLevel.Debug)`，因为前者已弃用。
* 日志级别为：Error（错误）、Warning（警告）、Info（信息）和 Debug（调试）。
* 将所有 `TapjoyConnectFlag.ENABLE_LOGGING` 用例替换为 `TapjoyConnectFlag.TJC_OPTION_LOGGING_LEVEL`，因为前者已弃用。

## 14.2.0##14.2.0

* 移除已弃用的 TJPlacementListener onClick 方法的用例。此方法将在下一个主要版本中移除，目前已不再发挥任何作用。
* 移除已弃用的 getSupportUrl 方法的所有用例。此方法将在下一个主要版本中移除，目前已不再发挥任何作用。

### 手动集成##manual-integration

如果采用手动集成方式，需向清单中添加两个新的活动。这些活动与预测性返回手势相关。

```xml
<activity
    android:name="com.tapjoy.TJAdUnitActivity"
    android:enableOnBackInvokedCallback="false"
    android:configChanges="orientation|keyboardHidden|screenSize"
    android:theme="@style/TranslucentTheme"
    android:hardwareAccelerated="true"
    tools:ignore="UnusedAttribute" />
<activity
    android:name="com.tapjoy.TJWebViewActivity"
    android:enableOnBackInvokedCallback="false"
    android:configChanges="orientation|keyboardHidden|screenSize"
    android:theme="@style/TranslucentTheme"
    android:hardwareAccelerated="true"
    tools:ignore="UnusedAttribute" />
```

## 14.0.0##14.0.0

* 移除 `Tapjoy.setActivity()` 的所有用例。此方法将在下一个主要版本中移除，目前已不再发挥任何作用。
* 移除 `Tapjoy.setGLSurfaceView()` 的所有用例。此方法将在下一个主要版本中移除，目前已不再发挥任何作用。
* 将已弃用的 `Tapjoy.trackPurchase()` 方法的用例替换为 `trackPurchase(String currencyCode, double price)`。

## 13.4.0##13.4.0

我们新增了一个 `connectWarning` 回调。当连接过程中出现非阻塞问题时将触发此回调，随后仍会触发 `connectSuccess`。目前，此功能仅用于检测在 ConnectFlags 中发送的 UserId 的相关问题。

```java title="Java"
Tapjoy.connect(getContext().getApplicationContext(), "SDK_KEY_GOES_HERE", connectFlags, new TJConnectListener() {
    @Override
    public void onConnectSuccess() {
        
    }
    @Override
    public void onConnectWarning(int code, String message) {
        
    }
    @Override
    public void onConnectFailure(int code, String message) {
        
    }    
}); 
```

## 13.2.0##13.2.0

### 连接##connect

我们向 `connectFailure` 回调添加了错误代码和消息参数。以前的回调现已弃用，但仍然有效。

```java title="Java"
Tapjoy.connect(getContext().getApplicationContext(), "SDK_KEY_GOES_HERE", connectFlags, new TJConnectListener() {
    @Override
    public void onConnectSuccess() {
        super.onConnectSuccess();
    }    
    @Override
    public void onConnectFailure(int code, String message) {
        super.onConnectFailure(code, message);
    }    
    @Override
    public void onConnectFailure() { //Deprecated
        super.onConnectFailure();
    }
}); 
```

### 最大用户等级##max-user-level

现在可以设置游戏中的关卡数。此设置可以在连接之前或之后进行。

```java title="Java"
Tapjoy.setMaxLevel(10); 
```

### 用户细分段##user-segment

现在可以设置当前使用应用的用户类型。此设置可以在连接之前或之后或在会话期间进行。

```java title="Java"
Tapjoy.setUserSegment(TJSegment.VIP);
Tapjoy.setUserSegment(TJSegment.PAYER);
Tapjoy.setUserSegment(TJSegment.NON_PAYER);
Tapjoy.setUserSegment(TJSegment.UNKNOWN); 
```

### 入口点##entry-point

在调用\_请求连接\_之前，可以设置入口点。该设置用于指定广告位将在应用中的显示位置。您可以从多个预设值中选择一个值。

```java title="Java"
TJPlacement placement = Tapjoy.getPlacement("myPlacement", null);
placement.setEntryPoint(TJEntryPoint.ENTRY_POINT_MAIN_MENU);
placement.requestContent(); 

// Available values
TJEntryPoint.ENTRY_POINT_UNKNOWN
TJEntryPoint.ENTRY_POINT_OTHER
TJEntryPoint.ENTRY_POINT_MAIN_MENU
TJEntryPoint.ENTRY_POINT_HUD
TJEntryPoint.ENTRY_POINT_EXIT
TJEntryPoint.ENTRY_POINT_FAIL
TJEntryPoint.ENTRY_POINT_COMPLETE
TJEntryPoint.ENTRY_POINT_INBOX
TJEntryPoint.ENTRY_POINT_INIT
TJEntryPoint.ENTRY_POINT_STORE 
```

### 货币##currency

* get/spend/earn 方法将不再接受负值。
* 如果自管货币调用托管货币 API，则会返回错误。

现在可以在创建广告位之前设置用户余额。此设置必须在 *requestContent* 之前进行。

```java title="Java"
TJPlacement placement = Tapjoy.getPlacement("placement", this);
placement.setCurrencyBalance("1234", 100, new TJSetCurrencyBalanceListener() {
    @Override
    public void onSetCurrencyBalanceSuccess() {
        
    }

    @Override
    public void onSetCurrencyBalanceFailure(int code, String error) {

    }
}); 
```

还可以设置用户在每个广告位上实现目标所需的货币数量。

```java title="Java"
TJPlacement placement = Tapjoy.getPlacement("placement", this);
placement.setCurrencyAmountRequired("1234", 100, new TJSetCurrencyAmountRequiredListener() {
    @Override
    public void onSetCurrencyAmountRequiredSuccess() {
        
    }

    @Override
    public void onSetCurrencyAmountRequiredFailure(int code, String error) {

    }
});
```

## 12.8.0##12.8.0

Tapjoy 现已托管我们自己的 Maven 代码仓库。Bintray 在短期内将继续运行，但鉴于其已弃用，建议您尽快更新以使用我们的代码仓库。

使用我们的代码仓库可以获取所有历史版本及新版本，而 Bintray 上今后仅保留 12.8.0 之前的版本。

可按如下方式使用新的代码仓库：

```java title="Java"
    repositories {
      maven {
        name "Tapjoy's maven repo"
        url "https://sdk.tapjoy.com/"
      }
    }

    dependencies {
      api 'com.tapjoy:tapjoy-android-sdk:12.8.0@aar'
    }
```
