Tài liệu này sẽ hướng dẫn bạn cách sử dụng API thành tích trong ứng dụng Android để mở khóa và hiển thị các thành tích trong trò chơi của bạn. Bạn có thể tìm thấy các API trong các gói com.google.android.gms.games
và com.google.android.gms.games.achievements
.
Trước khi bắt đầu
Nếu chưa từng có kinh nghiệm, bạn có thể xem lại các khái niệm về thành tích của trò chơi.
Trước khi bạn bắt đầu mã hóa bằng cách sử dụng API thành tích:
- Vui lòng làm theo hướng dẫn để cài đặt và thiết lập ứng dụng để sử dụng Dịch vụ trò chơi của Google Play trong hướng dẫn Thiết lập SDK dịch vụ của Google Play.
- Xác định thành tích mà bạn muốn trò chơi của mình mở khóa hoặc hiển thị, bằng cách làm theo hướng dẫn trong tài liệu về Google Play Console.
- Tải xuống và xem lại các mã mẫu thành tích trên trang mẫu Android.
- Làm quen với những đề xuất được mô tả trong Danh mục kiểm tra chất lượng.
Tải ứng dụng thành tích
Để bắt đầu sử dụng API thành tích, trước tiên trò chơi của bạn phải có được một đối tượng AchievementsClient
. Bạn có thể thực hiện việc này bằng cách gọi phương thức Games.getAchievementClient()
, sau đó truyền hoạt động và GoogleSignInAccount
cho người chơi hiện tại. Để tìm hiểu cách truy xuất thông tin tài khoản người chơi, hãy xem bài viết Đăng nhập vào trò chơi trên Android.
Mở khóa thành tích
Để mở khoá một thành tích, hãy gọi phương thức AchievementsClient.unlock()
và truyền mã thành tích vào.
Đoạn mã sau đây cho thấy cách ứng dụng của bạn có thể mở khóa các thành tích:
Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this)) .unlock(getString(R.string.my_achievement_id));
Nếu thành tích thuộc loại tăng dần (nghĩa là bạn phải thực hiện một số bước để mở khoá thành tích), hãy gọi AchievementsClient.increment()
.
Đoạn mã sau đây cho thấy cách ứng dụng của bạn có thể tăng thành tích của người chơi:
Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this)) .increment(getString(R.string.my_achievement_id), 1);
Bạn không cần phải viết thêm mã để mở khoá thành tích. Dịch vụ trò chơi của Google Play sẽ tự động mở khoá thành tích sau khi đạt đến số bước cần thiết.
Bạn nên xác định mã thành tích trong tệp strings.xml
để trò chơi của bạn có thể tham chiếu thành tích theo mã tài nguyên. Khi thực hiện lệnh gọi để cập nhật và tải thành tích, bạn phải nhớ làm theo các phương pháp hay nhất này để tránh vượt quá định mức API.
Hiển thị thành tích
Để hiển thị thành tích của người chơi, hãy gọi AchievementsClient.getAchievementsIntent()
để lấy Intent
tạo giao diện người dùng cho thành tích mặc định. Sau đó, trò chơi của bạn có thể hiển thị giao diện người dùng bằng cách gọi
startActivityForResult
.
Đoạn mã sau đây cho thấy cách ứng dụng của bạn có thể hiển thị giao diện người dùng của bảng thành tích mặc định.
Trong đoạn mã, RC_ACHIEVEMENT_UI
là một số nguyên tuỳ ý mà trò chơi sử dụng làm mã yêu cầu.
private static final int RC_ACHIEVEMENT_UI = 9003; private void showAchievements() { Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this)) .getAchievementsIntent() .addOnSuccessListener(new OnSuccessListener<Intent>() { @Override public void onSuccess(Intent intent) { startActivityForResult(intent, RC_ACHIEVEMENT_UI); } }); }
Dưới đây là một ví dụ về giao diện người dùng của bảng thành tích mặc định.