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:
- Hãy làm theo hướng dẫn để cài đặt và thiết lập ứng dụng của bạn để 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ụ 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
Đối tượng AchievementsClient
. Bạn có thể thực hiện việc này bằng cách gọi hàm
và truyền phương thức Games.getAchievementClient()
vào 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 Đăng nhập vào trò chơi Android.
Khai phá thành tích
Để mở khoá một thành tích, hãy gọi phương thức AchievementsClient.unlock()
và
chuyển mã thành tích.
Đ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á thiết bị), hãy gọi AchievementsClient.increment()
.
Đoạn mã sau đây minh hoạ cách ứng dụng của bạn có thể giúp người chơi tăng thành tích:
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ở khóa thành tích; Dịch vụ trò chơi của Google Play tự động mở khóa 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 cuộc gọi để cập nhật và tải
thành tích, hãy đảm bảo bạn cũng tuân theo các phương pháp hay nhất này để
tránh vượt quá hạn 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()
để nhận Intent
nhằm tạo
giao diện người dùng của bảng 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.