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 验证为准。