WOVN SDK Manual Installation Guide
Note: This guide applies to WOVN SDK v4.0.0 and later. For earlier versions, see the Android Quick Start guide.
Overview
This guide walks you through manually installing the WOVN SDK in your Android application. The installation consists of three main steps:
- Import and Configure - Add the WOVN SDK to your project and set up basic configuration
- Enable Lifecycle Tracking - Allow the SDK to monitor your app's activities for automatic translation
- Activate Development Mode - Register your device's Client ID to enable reporting and instant translation updates
Step 1: Import and Configure the WOVN SDK
1.1 Add Required Permissions
The WOVN SDK needs internet access to download translations and report usage data. Add these permissions to your AndroidManifest.xml
:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
1.2 Add the WOVN SDK Library
- Download the WOVN SDK file (
wovnapp-release.aar
) from the link provided by Customer Support - Create a
libs
folder in your project root if it doesn't exist - Copy the
.aar
file tolibs/wovnapp-release.aar
- Add this dependency to your module's
build.gradle
:
dependencies {
implementation files('../libs/wovnapp-release.aar')
}
1.3 Create Configuration File
Create a wovn.properties
file in your app/src/main/assets
folder with this configuration:
token=#{token} # Replace with your WOVN token
loglevel=0 # 0: All logs; 1: Debug and up; 2: Info and up; 3: Warning and up; 4: Only Error; 5: No log. Recommended to set to 0 initially for debugging.
translation_preview_mode=true # https://wovnio.github.io/WovnAppDocumentation/docs/English/Android/preview_translation
Verify Step 1
You should have modified or created these files:
Run your app and check Logcat. Filter by Wovn: loadDataAndStartWovn:
to see:
Wovn: loadDataAndStartWovn:
WOVN: Report:Off;ClientID: f147c92d-3d51-442a-871e-6aeb526cc0ea
Development mode enabled: false
ClientID: f147c92d-3d51-442a-871e-6aeb526cc0ea
Helpers.getDeviceLanguages [ko-KP, en-US, ja-JP, vi-VN, it-IT, zh-Hans-CN, zh-Hant-TW]
Available Languages: [zh-CHS, en-US, vi, ja, it, en-GB, zh-CHT, nl]
Current Language: en-US
Step 2: Enable Lifecycle Tracking
The WOVN SDK needs to monitor your app's activities to provide automatic translation. Add lifecycle tracking to your Application class (typically a file ending with App
or Application
that extends the Application
class):
final WovnActivityLifecycleCallbacks wovnActivityLifecycleCallbacks = new WovnActivityLifecycleCallbacks();
this.registerActivityLifecycleCallbacks(wovnActivityLifecycleCallbacks);
Complete example:
package io.wovn.app.demo;
import android.app.Application;
import io.wovn.wovnapp.Wovn;
import io.wovn.wovnapp.WovnActivityLifecycleCallbacks;
public class WovnDemoApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// You need to add the following 2 lines to enable the WOVN SDK to follow your app's lifecycle for automatic translation
final WovnActivityLifecycleCallbacks wovnActivityLifecycleCallbacks = new WovnActivityLifecycleCallbacks();
this.registerActivityLifecycleCallbacks(wovnActivityLifecycleCallbacks);
}
}
Verify Step 2
Run your app and filter Logcat by WovnActivityLifecycleCallbacks
. You should see lifecycle events being tracked:
WovnActivityLifecycleCallbacks: onActivityCreated: activity: io.wovn.app.demo.activities.TextsActivity@eb3c63a
WovnActivityLifecycleCallbacks: onActivityStarted: activity: io.wovn.app.demo.activities.TextsActivity@eb3c63a
WovnActivityLifecycleCallbacks: onActivityStopped: activity: io.wovn.app.demo.activities.MainActivity@faee4a8
WovnActivityLifecycleCallbacks: onActivityStarted: activity: io.wovn.app.demo.activities.MainActivity@faee4a8
WovnActivityLifecycleCallbacks: onActivityStopped: activity: io.wovn.app.demo.activities.TextsActivity@eb3c63a
WovnActivityLifecycleCallbacks: onActivityDestroyed: activity: io.wovn.app.demo.activities.TextsActivity@eb3c63a
WovnActivityLifecycleCallbacks: onActivityCreated: activity: io.wovn.app.demo.activities.WovnIgnoreScreenA@ee4ffb3
WovnActivityLifecycleCallbacks: onActivityStarted: activity: io.wovn.app.demo.activities.WovnIgnoreScreenA@ee4ffb3
WovnActivityLifecycleCallbacks: onActivityStopped: activity: io.wovn.app.demo.activities.MainActivity@faee4a8
WovnActivityLifecycleCallbacks: onActivityStarted: activity: io.wovn.app.demo.activities.MainActivity@faee4a8
WovnActivityLifecycleCallbacks: onActivityStopped: activity: io.wovn.app.demo.activities.WovnIgnoreScreenA@ee4ffb3
WovnActivityLifecycleCallbacks: onActivityDestroyed: activity: io.wovn.app.demo.activities.WovnIgnoreScreenA@ee4ffb3
WovnActivityLifecycleCallbacks: onActivityCreated: activity: io.wovn.app.demo.activities.EditsActivity@9024e02
WovnActivityLifecycleCallbacks: onActivityStarted: activity: io.wovn.app.demo.activities.EditsActivity@9024e02
WovnActivityLifecycleCallbacks: onActivityStopped: activity: io.wovn.app.demo.activities.MainActivity@faee4a8tex
Step 3: Activate Development Mode
Development mode enables real-time reporting and instant translation updates. Each device installation generates a unique Client ID that must be registered.
3.1 Find Your Client ID
You can find your Client ID in two ways:
- Check Logcat: Filter by
Wovn: loadDataAndStartWovn:
- In code: Call
Wovn.getClientID()
3.2 Register Your Device
- Open the WOVN Dashboard
- Navigate to your project
- Go to Settings → App → Security
- Click Add Device and enter your Client ID
Verify Step 3
Wait 2-3 minutes for the registration to take effect, then restart your app. In Logcat, filter for Wovn: loadDataAndStartWovn:
in logcat, you should now see Report:ON
:
Wovn: loadDataAndStartWovn:
WOVN: Report:ON;ClientID: f147c92d-3d51-442a-871e-6aeb526cc0ea
Development mode enabled: false
ClientID: f147c92d-3d51-442a-871e-6aeb526cc0ea
Helpers.getDeviceLanguages [ko-KP, en-US, ja-JP, vi-VN, it-IT, zh-Hans-CN, zh-Hant-TW]
Available Languages: [zh-CHS, en-US, vi, ja, it, en-GB, zh-CHT, nl]
Current Language: en-US
Next Steps
After completing the installation:
- Test your app - Navigate through as many screens as possible
- Check the Dashboard - Your app's activities should appear as pages ready for translation