Skip to content

Android — Play Games 成就 ​

ROAchievementPlayGames 使用官方 Play Games Services v2,当前依赖 play-services-games-v2:21.0.0,最低 Android 23。无需绑定 ROSDK Google 登录模块。

安装 ​

groovy
implementation 'com.ronpad.sdk:ro-achievement-playgames:0.1.0'

配置游戏应用可访问的 ROSDK 私有 Maven 源及可用版本。

调用 ​

java
ROAchievementPlayGames.initialize(getApplicationContext());
ROAchievementPlayGames.signIn(activity, (ok, error) -> {
    // 获得授权后再提交成就。
});
ROAchievementPlayGames.unlock(activity, "achievement.first_win",
    (ok, error) -> {});
ROAchievementPlayGames.showAchievements(activity, 30001,
    (ok, error) -> {});

在 Play Console 配置 Play Games Services 项目、正确包名和签名、成就 ID 和测试玩家;宿主负责 Activity 生命周期、授权取消、后台恢复与业务结果。不要通过 tools:overrideLibrary 强行绕过 SDK 的最低系统要求。

完整公开 API / 可选调用方式 ​

Java 接口用途及结果
ROAchievementPlayGames.initialize(context)宿主 App 启动或首次需要 Play Games 时按需初始化,内部保护重复调用
signIn(activity, Completion)Play Games v2 原生认证,独立于 Google 登录和游戏账号
unlock(activity, achievementId, Completion)解锁指定已在 Play Console 注册的成就
showAchievements(activity, requestCode, Completion)启动原生成就 UI;返回的成功仅表示页面成功发起,Activity 启动异常也通过同一 Completion 反馈
Completion.onResult(success, error)各原生操作状态;不是游戏服务器账号登录或业务奖励结算
java
ROAchievementPlayGames.initialize(application);
ROAchievementPlayGames.signIn(activity, (success, error) -> {
    if (!success) return; // 不要把 Play Games 当成游戏 auth.Auth 成功
    ROAchievementPlayGames.unlock(activity, achievementId, (unlocked, reason) -> {
        // 成就完成结果;业务奖励仍由游戏服务端处理
    });
});
ROAchievementPlayGames.showAchievements(activity, 1001, (opened, error) -> {
    // opened 只表示界面发起成功,后续 Activity 生命周期由宿主处理
});

此模块不要求接入 ROLoginGoogle;Android minSdk 实际以当前模块 Gradle 与官方 Games SDK/消费者合并 Manifest 验证为准。

按需接入独立 SDK 模块,按真实宿主配置原生接口。