Athana SDK

For Games

集成

初始化

在程序入口进行初始化:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// DemoApplication.kt
class DemoApplication: Application() {
override fun onCreate() {
super.onCreate()

...

// Athana SDK 配置
val appId = <id>
val appKey = "<key>"
val appSecret = "<secret>"
val debugMode = false // 设置 true,开启调试日志
val testMode = false // 设置 true,则
Athana.initialize(AthanaConfig(appId, appKey, appSecret, testMode, debugMode))
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// DemoApplication.java
public class DemoApplication extends Application {

@Override
public void onCreate() {
super.onCreate();
// Athana SDK 配置
long appId = <id>;
String appKey = "<key>";
String appSecret = "<secret>";
boolean debugMode = false; // 设置 true,开启调试日志
boolean testMode = false;
Athana.initialize(new AthanaConfig(appId, appKey, appSecret, testMode, debugMode));
}

}

启动

调用位置可选:Application.onCreate()MainActivity.onCreate(..)

在 Application.onCreate() 中启动

1
2
3
4
5
6
7
8
9
10
11
12
13
// DemoApplication.kt
class DemoApplication: Application() {
override fun onCreate() {
super.onCreate()
..
// Athana SDK init
// ...

// 建议是取得隐私协议确认后调用
val privacyGrant: Boolean = /* User confirm */
Athana.getInstance().start(privacyGrant)
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// DemoApplication.java
public class DemoApplication extends Application {

@Override
public void onCreate() {
super.onCreate();
..
// Athana SDK init
// ...
// 建议是取得隐私协议确认后调用
Boolean privacyGrant = /* User confirm */
Athana.getInstance().start(privacyGrant);
}

}

在 Activity.onCreate() 中启动

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// MainActivity.kt
class MainActivity: Activity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
..

// 建议是取得隐私协议确认后调用
val privacyGrant: Boolean = /* User confirm */
Athana.getInstance().start(privacyGrant)

// UnityPlayer 启动
// ...
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// MainActivity.java
public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
..
// Athana SDK init
// ...
// 建议是取得隐私协议确认后调用
Boolean privacyGrant = /* User confirm */
Athana.getInstance().start(privacyGrant);

// UnityPlayer 启动
// ...
}

}

平台注册

如将使用 Athana 账号服务的则可跳过该环节

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
// MainActivity.kt
class MainActivity: Activity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
..
// Athana started
checkUser()
}
}

private fun checkUser() {
Athana.getInstance().currentUser(
object : AthanaRequestListener<AccountInfo?> {
override fun onSuccess(data: AccountInfo?) {
if (data == null) {
// 未注册或凭证过期
registryUser()
} else {
// 已注册
}
}

override fun onError(error: AthanaError) {
// 调用异常
}

}
)
}

private fun registryUser() {
Athana.getInstance().registryUser(
signInType = SignInType.ANONYMOUS,
ua = webViewUA,
requestListener = object : AthanaRequestListener<AccountInfo> {
override fun onSuccess(data: AccountInfo) {
// 用户注册成功
}

override fun onError(error: AthanaError) {
// 调用异常
}
}
)
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
// MainActivity.java
public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
..
// Athana started
checkUser();
}

}

private void checkUser() {
Athana.getInstance().currentUser(
new AthanaRequestListener<>() {
@Override
public void onSuccess(AccountInfo data) {
if (data == null) {
// 未注册或凭证过期
registryUser();
} else {
// 已注册
}
}

@Override
public void onError(@NonNull AthanaError athanaError) {

}
}
);
}

private void registryUser() {
String webViewUA = "";
Athana.getInstance().registryUser(
SignInType.ANONYMOUS,
webViewUA,
new AthanaRequestListener<>() {
@Override
public void onSuccess(AccountInfo accountInfo) {
// 用户注册成功
}

@Override
public void onError(@NonNull AthanaError athanaError) {
// 调用异常
}
}
);
}

服务

服务 说明
AccountService 账号服务,主要负责对接三方登录
AdService 广告服务,提供开屏广告、插屏广告、激励广告、横幅广告支持
ConversionService 归因服务,负责处理广告转化
EventService 事件服务,负责数据埋点
IapServicee 内购服务,负责对接应用商店的支付
PushServicee 推送服务,负责对接消息推送
0%